前端
导出
<kendo-button class="k-button-icontext k-primary" ng-click="export();"><span
class="k-button-icon icon-download"></span>导出</kendo-button>
//数据下载
var downloadUrl = DSJS.getWebRoot() + "/addressbookbatch/export_excel?template=";
// 导出
$scope.export = function () {
$scope.filename = "contact_person.xlsx";
$http.get(downloadUrl + "contact_person",{
responseType: 'arraybuffer'}).success(function(data, status, headers){
headers = headers();
var contentDisposition = headers['content-disposition'];
var contentType = headers['content-type'];
var linkElement = document.createElement('a');
var blob = new Blob([data], {
type: contentType});
var url = window.URL.createObjectURL(blob);
var filename =
linkElement.setAttribute('href', url);
linkElement.setAttribute("download", $scope.filename);
//document.body.appendChild(linkElement);
//linkElement.click();
//document.body.remove(linkElement);
var clickEvent = new MouseEvent("click", {
"view": window,
"bubbles": true,
"cancelable": false
});
linkElement.dispatchEvent(clickEvent);
});
}
导入
<kendo-button class="k-button-icontext k-primary" ng-click="showUpload();"><span
class="k-button-icon icon-upload"></span>导入</kendo-button>
// 初始化弹出网页--导入
$scope.showUpload = function() {
$scope.winEdit.title($translate.instant("导入"));
$scope.winEdit.refresh({
url: "personOrOrgUpload.html?type=contact_person"
//iframe: true
});
$scope.winEdit.center();
$scope.winEdit.open();
};
or(其他页面书写差异不大,会忽略)
// 初始化弹出网页--导入
$scope.showUpload = function() {
$scope.winEdit.setOptions({
width: 800,
height: 500
});
$scope.winEdit.title($translate.instant("导入"));
$scope.winEdit.refresh({
url: "personOrOrgUpload.html?type=contact_org",
iframe: true
});
$scope.winEdit.center();
$scope.winEdit.open();
};
弹出导入页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>联系方式文件上传</title>
<#include "/basic/head-css.ftl" encoding="utf-8" />
<#include "/basic/head-js.ftl" encoding="utf-8" />
<style>
.k-upload .k-clear-selected, .k-upload .k-upload-selected {
line-height: 5px;
padding: .84em 0
}
.k-upload .k-upload-selected {
color: #525252
}
</style>
</head>
<body>
<div class = "container-fluid">
<div id="container">
<input id="file" type="file" name="file" accept=".xlsx" />
</div>
<div id="msg" style="border: 1px solid #cdced2;height: 80px;padding:7px 13px">
<p id=""></p>
</div>
</div>
</body>
<script>
var clear = "clear";
var fail = "Data import failed";
var success = "Data import successed";
if(top.current_lang != undefined && top.current_lang != null){
switch(top.current_lang){
case "zh-cn":
clear = "清除";
fail = "数据导入异常";
success = "数据导入成功";
break;
case "en-us":
clear = "clear";
fail = "An error occurs during data import.";
success = "Data imported successfully.";
break;
case "fr-fr":
clear = "clair";
fail = "Importation anomale.";
success = "Importation réussie.";
break;
default:
break;
}
}
var type = DSJS.getQueryString("type");
$("#msg").hide();
$("#file").kendoUpload({
localization: {
clearSelectedFiles: clear
},
async: {
// saveUrl: DSJS.getWebRoot() + "/batch/import_excel?type=",
saveUrl: DSJS.getWebRoot() + "/addressbookbatch/import_excel?type=",
removeUrl: "remove",
autoUpload: false
},
success: onSuccess,
select: onSelect,
upload: onUpload,
clear: onClear,
remove: onRemove,
multiple: false
});
function onSuccess(e) {
if(e.response.ret == 'error'){
$("#msg").show();
var upload = $("#file").data("kendoUpload");
upload.localization.headerStatusUploaded = fail;
e.preventDefault();
$("#msg").find("p").eq(0).html(e.response.msg);
}
if(e.response.ret == 'ok'){
$("#msg").find("p").eq(0).html(e.response.msg);
$("#msg").show();
var upload = $("#file").data("kendoUpload");
upload.localization.headerStatusUploaded = success;
}
}
function onSelect(e) {
}
function onUpload(e) {
var url = e.sender.options.async.saveUrl;
if(url.substr(url.length-1,1) === "="){
e.sender.options.async.saveUrl += type;
}
}
function onClear(e) {
$("#msg").find("p").eq(0).