aggregation-platform/plugins/system/ts/systemList.ts

216 lines
9.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// <reference path="../../includes.ts"/>
/// <reference path="systemPlugin.ts"/>
/// <reference path="systemHelpers.ts"/>
module System{
export var SystemListController = controller('SystemListController', ['$scope', '$location', '$http', '$templateCache', 'Upload', 'NgTableParams', 'ngDialog', ($scope, $location, $http, $templateCache, Upload, NgTableParams, ngDialog) => {
shareInit($scope);
// 表头显示的信息
$scope.columns= [
{ field: 'id', title: '操作', show: true},
{ field: "object", title: "采集对象", filter: { object: "select" }, filterData: booleanChoose(), show: true },
{ field: "city", title: "市", filter: { city: 'text' }, show: true },
{ field: "county", title: "区/县", filter: { county: 'text' }, show: true },
{ field: "regionalismCode", title: "行政区划代码", filter: {regionalismCode: 'text'}, show: true },
{ field: "level", title: "级次", filter: { level: "select" }, filterData: levelType(), show: true },
{ field: "systemCode", title: "系统编码", filter: { systemCode: "text" }, show: true },
{ field: "systemName", title: "信息系统名称", filter: { systemName: "text" }, show: true },
{ field: "contactsPerson", title: "联系人", filter: { contactsPerson: "text" }, show: true },
{ field: "contactsMethod", title: "联系方式", filter: { contactsMethod: "text" }, show: true },
{ field: "databaseType", title: "数据库类型", filter: { databaseType: "select" }, filterData: databaseType(), show: true},
{ field: "userSql", title: "oracle用户名表空间", filter: { userSql: "select" }, filterData: booleanChoose(), show: true},
{ field: "checkSql", title: "支付信息标准表脚本", filter: { checkSql: "select" }, filterData: booleanChoose(), show: true},
{ field: "execSql", title: "可执行标准表脚本", filter: { execSql: "select" }, filterData: booleanChoose(), show: true},
];
$scope.model = [{
id: 1,
object: '是',
city: '南京市',
county: '玄武区',
regionalismCode: '321001',
level: '市级',
systemCode: '5',
systemName: '非税系统',
contactsPerson: '唐僧',
contactsMethod: '15575170786',
databaseType: 'oracle',
userSql: '是',
checkSql: '是',
execSql: '是'
},
{
id: 2,
object: '是',
city: '南京市',
county: '浦口区',
regionalismCode: '321011',
level: '市级',
systemCode: '5',
systemName: '预算执行',
contactsPerson: '唐僧',
contactsMethod: '15675170786',
databaseType: 'oracle',
userSql: '是',
checkSql: '是',
execSql: '是'
}]
// 点击查看按钮事件处理函数
$scope.viewClick = (selected) => {
ngDialog.open({
template: 'systemInfo.html',
controller: 'Configs.SystemInfoController',
width: 790,
closeByDocument: false,
data: selected,
className: 'ngdialog-theme-default'
});
}
// 表数据
$scope.tableParams = new NgTableParams({count: 25}, {
counts: [25, 50, 100],
dataset: $scope.model
});
// 文件上传
$scope.upLoadExcelFile = (files) =>{
var r = new Resumable({
target:'/java/console/api/fileOperation/file/upload',
chunkSize:1*1024*1024,
simultaneousUploads:4,
testChunks: true,
throttleProgressCallbacks:1,
method: "octet"
});
if(!r.support){
throw "当前浏览器不支持Resumable.js文件上传";
}else{
console.log(files);
angular.forEach(files, (file) => {
r.addFile(file);
})
r.on('fileAdded', function(file){
console.log(file);
r.upload();
});
r.on('complete', function(){
// Hide pause/resume when the upload has completed
console.log("文件上传完毕");
});
r.on('fileProgress', function(file){
// Handle progress for both the file and the overall upload
//$('.resumable-file-'+file.uniqueIdentifier+' .resumable-file-progress').html(Math.floor(file.progress()*100) + '%');
//$('.progress-bar').css({width:Math.floor(r.progress()*100) + '%'});
console.log(Math.floor(r.progress()*100) + '%');
});
}
}
//excel下载
$scope.downLoadExcelFile = () =>{
$http.get('/java/console/api/fileOperation/file/download', { responseType: 'arraybuffer' })
.success( function(data, status, headers) {
var octetStreamMime = 'application/octet-stream';
var success = false;
// Get the headers
headers = headers();
// Get the filename from the x-filename header or default to "服务列表"
var filename = headers['x-filename'] || '服务列表.xls';
// Determine the content type from the header or default to "application/octet-stream"
var contentType = headers['content-type'] || octetStreamMime;
try{
// Try using msSaveBlob if supported
console.log("Trying saveBlob method ...");
var blob = new Blob([data], { type: contentType });
if(navigator.msSaveBlob)
navigator.msSaveBlob(blob, filename);
else {
// Try using other saveBlob implementations, if available
var saveBlob = navigator["webkitSaveBlob"] || navigator["mozSaveBlob"] || navigator["saveBlob"];
if(saveBlob === undefined) throw "Not supported";
saveBlob(blob, filename);
}
console.log("saveBlob succeeded");
success = true;
} catch(ex){
console.log("saveBlob method failed with the following exception:");
console.log(ex);
}
if(!success){
// Get the blob url creator
var urlCreator = window.URL || window["webkitURL"] || window["mozURL"] || window["msURL"];
if(urlCreator){
// Try to use a download link
var link = document.createElement('a');
if('download' in link){
// Try to simulate a click
try{
// Prepare a blob URL
console.log("Trying download link method with simulated click ...");
var blob = new Blob([data], { type: contentType });
var url = urlCreator.createObjectURL(blob);
link.setAttribute('href', url);
// Set the download attribute (Supported in Chrome 14+ / Firefox 20+)
link.setAttribute("download", filename);
// Simulate clicking the download link
var event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
link.dispatchEvent(event);
console.log("Download link method with simulated click succeeded");
success = true;
}catch(ex) {
console.log("Download link method with simulated click failed with the following exception:");
console.log(ex);
}
}
if(!success){
// Fallback to window.location method
try{
// Prepare a blob URL
// Use application/octet-stream when using window.location to force download
console.log("Trying download link method with window.location ...");
var blob = new Blob([data], { type: octetStreamMime });
var url = urlCreator.createObjectURL(blob);
window.location = url;
console.log("Download link method with window.location succeeded");
success = true;
}catch(ex){
console.log("Download link method with window.location failed with the following exception:");
console.log(ex);
}
}
}
}
if(!success){
// Fallback to window.open method
console.log("No methods worked for saving the arraybuffer, using last resort window.open");
window.open('_blank', '');
}
}).error(function(data, status) {
console.log("Request failed with status: " + status);
// Optionally write the error out to scope
$scope.errorDetails = "Request failed with status: " + status;
});
}
//boolean选择条件是/否
function booleanChoose(){
return [{id: '是', title: '是'}, {id: '否', title: '否'}];
}
// 数据库类型选择条件oracle/sqlServer
function databaseType(){
return [{id: 'oracle', title: 'Oracle'}, {id: 'sqlServer', title: 'sqlServer'}];
}
//level选择条件
function levelType(){
return [{id: '省', title: '省'}, {id: '市', title: '市'}, {id: '县', title: '县'}];
}
}])
}