Files
zszq-trs/YLErpWeb/Views/TaskEvent/Index.cshtml
T
2024-05-09 14:06:26 +08:00

220 lines
6.6 KiB
Plaintext

@{
ViewBag.Title = "国信金阳数据同步";
Layout = "~/Views/Shared/_MainLayout.cshtml";
var pageObj = new
{
HasGroup = ConsUserGroup.HasGroup
};
}
@section CSS{
<style>
.autobreak {
white-space: normal !important;
line-height: 18px!important;
}
.cs-status {
display: block;
height: 25px;
border-width: 1px;
width: 66px;
border-style: solid;
border-radius: 5px;
line-height: 23px;
text-align: center;
margin-left:auto;
margin-right:auto;
}
.cs-status.cs-wait{
border-color: gray;
background-color: lightgray;
}
.cs-status.cs-excuting {
border-color: blue;
background-color: dodgerblue;
}
.cs-status.cs-faliure {
border-color: red;
background-color:lightsalmon;
}
.cs-status.cs-success {
border-color: green;
background-color: lawngreen;
}
</style>
}
@section JS{
<script>
var page = @Json.Serialize(pageObj);
</script>
<script type="text/javascript">
$(function () {
var PostData = {};
$(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true });
@Html.Raw(JqGridSimple.OutGrid("/TaskEvent/GetEventLogs"));
document.onkeydown = function (event) {
try {
var e = event ? event : (window.event ? window.event : null);
(e.keyCode == 13) && SearchClick(true);
} catch (e) { }
};
});
window.reloadData = reload;
var colModelGrid = [{
name: 'id', label: 'id', index: 'id', width: 1, hidden: true
},
{
name: 'DateSelect', label: "日期选择", index: 'DateSelect', width: 250
},
{
name: 'Status', label: '状态', index: 'Status', width: 200, align: "center", classes: "autobreak", formatter: showStatus
},
{
name: 'ErrorMsg', label: '失败信息', index: 'ErrorMsg', width: 400, align: "left", classes: "autobreak"
},
{
name: 'OptName', label: '操作人名', index: 'OptName', width: 100
},
{ name: 'OptDate', label: '操作时间', index: 'OptDate', width: 100, formatter: 'date' }
];
function showStatus(cellValue, options, rowObject) {
if (cellValue == 0) {
return '<span class="cs-status cs-wait">等待执行</span>';
} else if (cellValue == 1) {
return '<span class="cs-status cs-excuting">同步中</span>';
}else if (cellValue == 2) {
return '<span class="cs-status cs-faliure">同步失败</span>';
} else if (cellValue == 3) {
return '<span class="cs-status cs-success">同步成功</span>';
}
}
var isgoing=false;
function StartSync(){
if (isgoing) {
main.message("请等待当前任务执行完成再开始下一任务");
return;
}
var startDate = $("#DateFromDateSelect").val();
var endDate = $("#DateToDateSelect").val();
if(startDate==null||startDate==undefined||startDate==""){
main.message("请选择时间区间");
return;
}
if (endDate == null || endDate == undefined || endDate == "") {
main.message("请选择时间区间");
return;
}
var ajaxopt = {
type: "Post",
url: "/TaskEvent/AddGxjyDataPushTask",
data: { StartDate: startDate, EndDate: endDate },
dataType: "json",
success: function (data) {
if(!data.Success){
main.message(data.ErrorMsg);
}else{
$("#syncBar").show();
times = 0;
isgoing=true;
var interval=setInterval(function(){ShowBar(data.PredictTime)}, 1000);
setTimeout(function () { clearInterval(interval) }, (data.PredictTime+2)*1000);
}
},
error: function (msg) {
alert("error:" + msg);
}
}
main.ajax(ajaxopt);
}
var times=0;
function ShowBar(total){
times++;
var percent=times*100/total;
//alert(percent);
ShowPercent(percent);
}
function ShowPercent(percent){
percent = Math.round(percent);
if(percent<=100){
$("#syncBar div").css("width",percent+"%");
$("#syncBar div span").text(percent + "% "+"完成");
}
if(percent>100){
reload();
$("#syncBar").hide();
$("#syncBar div").css("width",0+"%");
$("#syncBar div span").text(0 + "% "+"完成");
times = 0;
isgoing=false;
}
}
function reload() {
//重新加载
SearchClick();
}
function SearchClick(isSearchclick) {
var listGrid = $('#listGrid');
if (typeof (isSearchclick) != "undefined" && isSearchclick) {
//点击搜索时默认第一页
listGrid.jqGrid('setGridParam', {page: 1});
}
listGrid.trigger('reloadGrid');
}
</script>
}
<div class="searchdiv">
@Html.SearchDateRange("DateSelect", "日期选择")
@MyControls.Btn("开始同步", "StartSync()")
@MyControls.Btn("刷新", "reload()")
<div class="progress progress-striped active" id="syncBar" style="width:600px;margin-top:15px;display:none;margin-left:24px;">
<div class="progress-bar progress-bar-success" role="progressbar"
aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"
style="width: 0%;">
<span>0% 完成</span>
</div>
</div>
</div>
@Html.Raw(JqGridSimple.OutTable())