--新增脚本管理模块

Web_Manager_Develope
wu ming 8 years ago
parent 58ce6e6482
commit 464b415904

@ -5,4 +5,5 @@ declare module Configs {
var TableEdit: ng.IModule;
var VolumeController: ng.IModule;
var SystemInfoController: ng.IModule;
var SqlViewController: ng.IModule;
}

@ -0,0 +1,7 @@
/// <reference path="../../includes.d.ts" />
/// <reference path="systemPlugin.d.ts" />
/// <reference path="systemHelpers.d.ts" />
/// <reference path="systemServices.d.ts" />
declare module System {
var SystemSQLManagement: ng.IModule;
}

3
defs.d.ts vendored

@ -81,7 +81,8 @@
/// <reference path="d.ts/system/ts/systemHelpers.d.ts"/>
/// <reference path="d.ts/system/ts/systemPlugin.d.ts"/>
/// <reference path="d.ts/system/ts/regionalismCodeSearch.d.ts"/>
/// <reference path="d.ts/system/ts/systemServices.d.ts"/>
/// <reference path="d.ts/system/ts/sqlManagement.d.ts"/>
/// <reference path="d.ts/system/ts/systemCodeSearch.d.ts"/>
/// <reference path="d.ts/system/ts/systemList.d.ts"/>
/// <reference path="d.ts/system/ts/systemServices.d.ts"/>
/// <reference path="d.ts/system/ts/systemVerification.d.ts"/>

File diff suppressed because one or more lines are too long

@ -248,8 +248,8 @@ gulp.task('connect', ['watch'], function() {
targetPath: '/hawtio/git'
}, {
proto: "http",
port: "8088",
hostname: "192.168.0.101",
port: "8080",
hostname: "192.168.0.181",
path: '/java/console/api',
targetPath: "/"
}];

@ -163,4 +163,22 @@ treecontrol li:hover{}
.box_chakan_leftinfo{ display:inline-block; width: 120px; text-align: right;}
.box_chakan_maxinfo{ display:inline-block; width: 600px; text-align: left; color: #666; }
.box_chakan_mininfo{ display:inline-block; width: 230px; text-align: left; color: #666; }
.box_chakan_smallinfo{ display:inline-block; width: 140px; text-align: left; color: #666; }
.box_chakan_smallinfo{ display:inline-block; width: 140px; text-align: left; color: #666; }
/*查看弹框 20161018byLB*/
.box_chakan{ width: 720px;background:#f4f4f4; padding:15px; line-height: 1.9; }
.box_chakan h2{ font-size: 14px; border-bottom: 1px solid #e4e4e4; padding-bottom: 5px; padding-left: 15px;}
.box_chakan li{ margin-bottom: 10px;}
.box_chakan_leftinfo{ display:inline-block; width: 100px; text-align: right;}
.box_chakan_maxinfo{ display:inline-block; width: 600px; text-align: left; color: #666; }
.box_chakan_mininfo{ display:inline-block; width: 250px; text-align: left; color: #666; }
.box_chakan_smallinfo{ display:inline-block; width: 140px; text-align: left; color: #666; }
/*查看弹框 20161027byLB*/
.sj_box_w440{ width: 430px; height: 400px; overflow-x:scroll; border:1px solid #eee; color: #666; padding:5px;}
.sj_new_box02{ width:450px; margin:0 auto; padding:20px; }
.sj_new_box03{ width:890px; margin:0 auto; padding:20px; }
.sj_width440{width: 440px;}
.fb{ font-weight: bold;}
.mr60{ margin-right: 60px;}
.sj_link{padding-left: 60px; width: 360px;}
.sj_popup_h2{ font-size: 14px; color: #333;}

@ -16,7 +16,6 @@
</div>
</div>
</script>
<script type="text/ng-template" id="connectStatus.html">
<div class="ngCellText" ng-init="entity=row.entity">
<div ng-show="true" title="汇总库的连接状态">
@ -27,7 +26,6 @@
</div>
</div>
</script>
<script type="text/ng-template" id="newDialog.html">
<div class="sj_new_box">
<form name="volumeForm" class=" mb10" novalidate="novalidate">
@ -100,72 +98,99 @@
</form>
</div>
</script>
<script type="text/ng-template" id="systemInfo.html">
<div class="sj_new_box">
<div class=" mb10">
<ul class="box_chakan">
<h2 class="mb10">查看详情</h2>
<li class="clear">
<span class="fl box_chakan_leftinfo">行政区划代码:</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.areaCode}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">行政区划:</span>
<p class="fl box_chakan_mininfo"><span class="mr5">{{ngDialogData.cityName}}</span><span class="mr5">{{ngDialogData.districtName}}</span><span class="mr5">{{ngDialogData.areaLevel}}</span></p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">信息系统名称:</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.sysName}}</p>
<span class="fl box_chakan_leftinfo">信息系统版本:</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.dataVersion}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">数据库类型:</span>
<p class="fl box_chakan_mininfo"><span>{{ngDialogData.dataBaseType}}</span><span class="ml5 mr5">/</span><span >{{ngDialogData.dataBaseVersion}}</span></p>
<!--<span class="fl box_chakan_leftinfo">字符集:</span>
<div class="sj_new_box">
<div class=" mb10">
<ul class="box_chakan">
<h2 class="mb10">查看详情</h2>
<li class="clear">
<span class="fl box_chakan_leftinfo">行政区划代码:</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.areaCode}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">行政区划:</span>
<p class="fl box_chakan_mininfo"><span class="mr5">{{ngDialogData.cityName}}</span><span class="mr5">{{ngDialogData.districtName}}</span><span class="mr5">{{ngDialogData.areaLevel}}</span></p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">信息系统名称:</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.sysName}}</p>
<span class="fl box_chakan_leftinfo">信息系统版本:</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.dataVersion}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">数据库类型:</span>
<p class="fl box_chakan_mininfo"><span>{{ngDialogData.dataBaseType}}</span><span class="ml5 mr5">/</span><span>{{ngDialogData.dataBaseVersion}}</span></p>
<!--<span class="fl box_chakan_leftinfo">字符集:</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.charset}}}</p>-->
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">投入使用时间:</span>
<p class="fl box_chakan_mininfo"><span class="mr5">{{ngDialogData.beginUseTime}}</span></p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">开发商全称:</span>
<p class="fl box_chakan_maxinfo">{{ngDialogData.developerFullName}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">联系人:</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.departmentManager}}</p>
<span class="fl box_chakan_leftinfo">联系电话(手机)</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.managerContacts}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">功能描述:</span>
<p class="fl box_chakan_maxinfo">{{ngDialogData.functionDetails}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">业务范围:</span>
<p class="fl box_chakan_maxinfo">
<span class="mr5" ng-repeat='item in ngDialogData.workRange'>{{item}}</span>
</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">脚本文件:</span>
<p class="fl box_chakan_maxinfo">
192.168.0.110 /home/script/<br/>
UserTablespace_321202_05.sql<br/>
Checkout_Indicate_321202_05.sql<br/>
Checkout_Pay_321202_05.sql<br/>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">投入使用时间:</span>
<p class="fl box_chakan_mininfo"><span class="mr5">{{ngDialogData.beginUseTime}}</span></p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">开发商全称:</span>
<p class="fl box_chakan_maxinfo">{{ngDialogData.developerFullName}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">联系人:</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.departmentManager}}</p>
<span class="fl box_chakan_leftinfo">联系电话(手机)</span>
<p class="fl box_chakan_mininfo">{{ngDialogData.managerContacts}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">功能描述:</span>
<p class="fl box_chakan_maxinfo">{{ngDialogData.functionDetails}}</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">业务范围:</span>
<p class="fl box_chakan_maxinfo">
<span class="mr5" ng-repeat='item in ngDialogData.workRange'>{{item}}</span>
</p>
</li>
<li class="clear">
<span class="fl box_chakan_leftinfo">脚本文件:</span>
<p class="fl box_chakan_maxinfo">
192.168.0.110 /home/script/
<br/> UserTablespace_321202_05.sql
<br/> Checkout_Indicate_321202_05.sql
<br/> Checkout_Pay_321202_05.sql
<br/>
</p>
</li>
</ul>
</div>
</div>
</script>
<script type="text/ng-template" id="headerCheckbox.html">
<input type="checkbox" ng-model="checkboxes.checked" class="select-all" value="" />
</script>
<script type="text/ng-template" id="sqlView.html">
<div class="sj_new_box03">
<h2 class="sj_popup_h2 mb10">Checkout_Indicate_321202_05.sql</h2>
<div class="clear mb10">
<ul class="fl sj_width440">
<li><span class="fb">默认脚本:</span>2016-01-25 12:00</li>
<li class="sj_link">/Default Script/Default Script/Default Script/Default Script/Default Script/Default Script</li>
</ul>
<div class="fl sj_width440">
<input type="text" class="sj_txt_box02 mr5 fl">
<button class="sj_btn_green fl">上传</button>
</div>
</div>
<div class="clear mb10">
<div class="sj_box_w440 fl">
<p>SELECT '320100' AS XZQHDM, '江苏省南京市本级' AS XZQHMC, '2015' AS YSND, A.JSDE106 AS ZBCODE, A.JSDE107 AS ZB_ID, B.DE151 AS ZB_NO, B.JSDE011 AS ZBDJLXCODE, H.JSDE902 AS ZBDJLXNAME, J.JSD
</p>
</li>
</ul>
</div>
<div class=" sj_box_w440 fl">
</div>
</div>
<div class=" clear">
<button class="sj_btn_blue mr5 fr">确定</button>
<button class="sj_btn_grey mr5 fr">取消</button>
</div>
</div>
</div>
</script>
<div ng-controller="Kubernetes.TopLevel">
<div class="wiki-icon-view" ng-controller="Kubernetes.FileDropController" nv-file-drop nv-file-over uploader="uploader" over-class="ready-drop">
<div class="row kubernetes-view" ng-view></div>

@ -50,7 +50,7 @@ module Configs{
}
export function downloadFile($scope, $http, url, fn?){
$http.get(url, { responseType: 'arraybuffer' })
$http.get(url, { responseType: 'arraybuffer'})
.success( function(data, status, headers) {
if(angular.isFunction(fn))
fn();
@ -143,7 +143,9 @@ module Configs{
}).error(function(data, status) {
console.log("Request failed with status: " + status);
// Optionally write the error out to scope
fn();
Configs.customAlert("提示", "文件下载失败", '',null, 0, "error");
$scope.errorDetails = "Request failed with status: " + status;
});
}
}
}

@ -77,4 +77,34 @@ module Configs{
var model = $scope.ngDialogData;
//处理年月
}]);
export var SqlViewController = controller('SqlViewController', ['$scope', '$http', ($scope, $http) =>{
$scope.content = "";
getSqlContent();
function getSqlContent(){
$http({
url: "/java/console/api/filePackage/readSqlFile",
method:'POST',
params: {type: $scope.ngDialogData.type},
data: JSON.stringify($scope.ngDialogData.item)
}).success(function(data,header,config,status){
//响应成功
}).error(function(data,header,config,status){
//处理响应失败
});
}
$scope.sqlUpload = (file) => {
if(typeof FileReader == 'undefined'){
throw "浏览器不支持FileReader读取文件"
}else{
var fr = new FileReader();
fr.onloadend = (e) => {
console.log(e.target.result);
}
fr.readAsText(file[0],"UTF-8");
}
}
}]);
}

@ -1851,7 +1851,7 @@ module Kubernetes {
complete: (XMLHttpRequest, textStatus) => {
if(XMLHttpRequest.status == 200){
//spinner.spin();
Kubernetes.createSuccessInfo("succes", "连接汇总库成功,即将执行汇总操作!");
Kubernetes.createSuccessInfo("success", "连接汇总库成功,即将执行汇总操作!");
setTimeout("Kubernetes.removeMask()", 1500);
}
else{

@ -15,19 +15,19 @@
<i class="glyphicon glyphicon-save"></i> 文件包导出
</button>
<span class="pull-right">&nbsp;</span>
<button class="btn pull-right sj_btn_grey " ng-click="downLoadExcelFile()">
<button class="btn pull-right sj_btn_grey " ng-click="downLoadExcelFile()">
<i class="glyphicon glyphicon-export"></i> Excel导出
</button>
<span class="pull-right">&nbsp;</span>
<div class="btn pull-right sj_btn_grey ">
<a class="data_file_btn fl">导入到服务器</a>
<input type="file" name="file-upload[]" id="file-uploads" onchange="angular.element(this).scope().upLoadExcelFile(this.files);" accept="application/msexcel" multiple />
<input type="file" name="file-upload[]" id="file-uploads" onchange="angular.element(this).scope().upLoadExcelFile(this.files);" accept="application/msexcel" />
</div>
</div>
<div ng-show="true">
<div class="col-md-12">
<div ng-show="model.length == 0" class="alert alert-warning sj_alert-warning">
<span class="help-block" >
<span class="help-block">
当前没有可以查看的数据请点击Excel导入按钮导入Excel数据</span></div>
<table ng-show="model.length != 0" ng-table-dynamic="tableParams with columns" class="table table-condensed table-bordered table-striped">
<tr ng-repeat="row in $data">

@ -0,0 +1,88 @@
<div ng-controller="System.SystemSQLManagement">
<div hawtio-tabs></div>
<div class="container-fluid sj_fluid">
<div class="row clear fl">
<label>行政区划代码</label>
</div>
<div class="row clear fl">
<select class="form-control" ng-change="citySelect(x)" ng-model="x" ng-init="x='all'">
<option value="all">全部</option>
<option ng-repeat="city in cities">{{city}}</option>
</select>
</div>
<div class="row clear fl">
<select class="form-control" ng-change="countrySelect(y)" ng-model="y" ng-init="y='all'">
<option value="all">全部</option>
<option ng-repeat="country in countries">{{country.name}}</option>
</select>
</div>
<div class="row clear fl">
<select class="form-control" ng-change="statusSelect(z)" ng-model="z" ng-init="z='all'">
<option value="all">全部</option>
<option ng-repeat="value in status">{{value.label}}</option>
</select>
</div>
<div class="row clear fl">
<span class="pull-right">&nbsp;</span>
<button class="btn pull-right sj_btn_grey " ng-click="replaceSql()">
<i class="glyphicon glyphicon-save"></i> 文件包导出
</button>
</div>
<div class="col-md-12">
<div ng-show="model.length == 0" class="alert alert-warning sj_alert-warning">
<span class="help-block">
当前没有可以查看的数据,请点击Excel导入按钮导入Excel数据</span></div>
<table ng-show="model.length != 0" ng-table="tableParams" class="table table-condensed table-bordered table-striped">
<colgroup>
<col width="2%" />
<col width="10%" />
<col width="10%" />
<col width="10%" />
<col width="10%" />
<col width="15%" />
</colgroup>
<tr ng-repeat="row in $data">
<td header="'headerCheckbox.html'">
<input type="checkbox" ng-model="checkboxes.items[row.id]" />
</td>
<td title="'状态'">
<span ng-show="row.sysStatus == 0">有缺失</span>
<span ng-show="row.sysStatus == 1">正常</span>
<span ng-show="row.sysStatus == 2">待归档</span>
<span ng-show="row.sysStatus == 3">待审核</span>
</td>
<td title="'行政区划代码'">{{row.areaCode}}</td>
<td title="'市'">{{row.cityName}}</td>
<td title="'区/县'">{{row.districtName}}</td>
<td title="'信息系统名称'">{{row.sysName}}</td>
<td title="'数据库类型'">{{row.dataBaseType}}</td>
<td title="'oracle用户表空间脚本'">
<button ng-show="row.userTableStatus <= 3" class="btn sj_btn" ng-click="viewSql(row, 'userTableStatus')">&nbsp;&nbsp;
<span ng-show="row.userTableStatus == 0 ">上传</span>
<span ng-show="row.userTableStatus == 1 ">查看</span>
<span ng-show="row.userTableStatus == 2 ">归档</span>
<span ng-show="row.userTableStatus == 3 ">审核</span>
</button>
<span ng-show="row.userTableStatus == 4 "></span>
</td>
<td title="'支付信息标准表脚本'">
<button class="btn sj_btn" ng-click="viewSql(row, 'ckPayStatus')">&nbsp;&nbsp;
<span ng-show="row.ckPayStatus == 0 ">上传</span>
<span ng-show="row.ckPayStatus == 1 ">查看</span>
<span ng-show="row.ckPayStatus == 2 ">归档</span>
<span ng-show="row.ckPayStatus == 3 ">审核</span>
</button>
</td>
<td title="'可执行标准表脚本'">
<button class="btn sj_btn" ng-click="viewSql(row, 'ckIndicateStatus')">&nbsp;&nbsp;
<span ng-show="row.ckIndicateStatus == 0 ">上传</span>
<span ng-show="row.ckIndicateStatus == 1 ">查看</span>
<span ng-show="row.ckIndicateStatus == 2 ">归档</span>
<span ng-show="row.ckIndicateStatus == 3 ">审核</span>
</button>
</td>
</tr>
</table>
</div>
</div>
</div>

@ -13,7 +13,7 @@
</div>
<div class="row clear fl">
<select class="form-control" ng-change="countrySelect(y)" ng-model="y" ng-init="y='all'">
<option value="all">全部</option>
<option ng-repeat="country in countries">{{country.name}}</option>
</select>
</div>
@ -26,8 +26,7 @@
<div class="col-md-12">
<table ng-table-dynamic="tableParams with columns" class="table table-condensed table-bordered table-striped">
<tr ng-repeat="row in $data" ng-class="{'danger': row.check = '否'}">
<td ng-repeat="col in $columns">{{row[col.field]}}</td>
{{row}}
<td ng-repeat="col in $columns">{{row[col.field]}}</td>
</tr>
</table>
</div>

@ -0,0 +1,106 @@
/// <reference path="../../includes.ts"/>
/// <reference path="systemPlugin.ts"/>
/// <reference path="systemHelpers.ts"/>
/// <reference path="systemServices.ts"/>
module System{
export var SystemSQLManagement = controller('SystemSQLManagement', ['$scope', '$location', '$http', '$element', '$templateCache', 'NgTableParams', 'ngDialog', 'SystemModel', ($scope, $location, $http, $element, $templateCache, NgTableParams, ngDialog, SystemModel) => {
shareInit($scope);
$scope.cities = classifyCity(SystemModel.regionalismInfo);
$scope.status = [{id: 0, label: "全部"}, {id: 1, label: "待审"}, {id: 2, label: "缺失"}, {id:3, label:"正常"}];
$scope.filterResult = $scope.model = SystemModel.sqlInfo;
$scope.checkboxes = {
checked: false,
items: {}
};
$scope.tableParams = new NgTableParams({count: 25}, {
counts: [25, 50, 100],
dataset: $scope.filterResult
});
$scope.citySelect = (x) =>{
if(x != 'all'){
$scope.countries = classifyCountry(SystemModel.regionalismInfo, x);
$scope.filterResult = [];
angular.forEach($scope.model, (item) => {
if(x == item.cityName)
$scope.filterResult.push(item);
});
$scope.tableParams.settings({
dataset: $scope.filterResult
});
}else{
$scope.countries=[];
$scope.filterResult = $scope.model;
$scope.tableParams.settings({
dataset: $scope.filterResult
});
}
}
$scope.countrySelect = (y) => {
if(y != 'all'){
var result = [];
angular.forEach($scope.filterResult, (item) => {
if(item.districtName == y)
result.push(item);
});
$scope.tableParams.settings({
dataset: result
});
}else{
$scope.tableParams.settings({
dataset: $scope.filterResult
});
}
}
$scope.statusSelect = (z) => {
var result = [];
console.log(z);
}
// watch for check all checkbox
$scope.$watch(function() {
return $scope.checkboxes.checked;
}, function(value) {
angular.forEach($scope.model, function(item) {
$scope.checkboxes.items[item.id] = value;
});
});
// watch for data checkboxes
$scope.$watch(function() {
return $scope.checkboxes.items;
}, function(values) {
var checked = 0, unchecked = 0,
total = $scope.model.length;
angular.forEach($scope.model, function(item) {
checked += ($scope.checkboxes.items[item.id]) || 0;
unchecked += Number((!$scope.checkboxes.items[item.id])) || 0;
});
if ((unchecked == 0) || (checked == 0)) {
$scope.checkboxes.checked = (checked == total);
}
// grayed checkbox
angular.element($element[0].getElementsByClassName("select-all")).prop("indeterminate", (checked != 0 && unchecked != 0));
}, true);
$scope.viewSql = (selected, type) => {
ngDialog.open({
template: 'sqlView.html',
controller:'Configs.SqlViewController',
width: 1005,
height: 700,
scope: $scope,
closeByDocument : false,
data: {type: type, item: selected },
className: 'ngdialog-theme-default'
});
}
}])
}

@ -20,6 +20,11 @@ module System{
label: '信息系统校验',
title: '校验信息系统'
},
{
href: UrlHelpers.join(context, 'system-sqlManagement'),
label: '信息系统脚本管理',
title: '管理sql脚本'
},
{
href: UrlHelpers.join(context, 'system-help'),
label: '帮助',

@ -17,6 +17,7 @@ module System{
.when(UrlHelpers.join(context, 'system-help', 'regionalism-search'), route('regionalismCodeSearch.html', false))
.when(UrlHelpers.join(context, 'system-help', 'system-search'), route('systemCodeSearch.html', false))
.when(UrlHelpers.join(context, 'system-verification'), route('systemVerification.html', false))
.when(UrlHelpers.join(context, 'system-sqlManagement'), route('systemSQLManagement.html', false))
.when(context, {redirectTo: UrlHelpers.join(context, 'system-list')});
}]);

@ -27,10 +27,12 @@ module System{
public systemInfoList: Array<any> = [];
public systemInfo: Array<any> = [];
public regionalismInfo: Array<any> = [];
public sqlInfo: Array<any> = []
public constructor(){
this.updateCodeInfo();
this.updateExcelInfo();
this.updateSqlInfo();
//console.log(classifyCountry(this.regionalismInfo, '南京市'));
}
@ -48,6 +50,20 @@ module System{
this.systemInfoList = result;
}
public updateSqlInfo(){
var result = null;
$.ajax({
async: false,
type: "POST",
url: "/java/console/api/filePackage/findAll",
success: (data) =>{
if(data)
result = data.data;
}
});
this.sqlInfo = result;
}
public updateCodeInfo(){
var result=null;
$.ajax({

@ -73,7 +73,8 @@ module System{
$scope.tableParams.settings({
dataset: $scope.filterResult
});
}else{
}else{
$scope.countries=[];
$scope.filterResult = $scope.tableData;
$scope.tableParams.settings({
dataset: $scope.filterResult

Loading…
Cancel
Save