@{
|
ViewBag.Title = "日志管理";
|
Layout = "~/Views/Shared/_LayoutVue.cshtml";
|
}
|
@section head{
|
<style type="text/css">
|
.el-table .red-row {
|
background: red;
|
}
|
|
#mainTransverse {
|
height: 380px;
|
}
|
|
#mainTransverse #divTop {
|
width: 48%;
|
float: left;
|
height: 300px;
|
}
|
|
#mainTransverse #divBottom {
|
width: 52%;
|
float: left;
|
height: 100%;
|
}
|
</style>
|
|
<link rel="stylesheet" href="~/js/Vue/splitter/jqx.base.css" type="text/css" />
|
<script type="text/javascript" src="~/js/Vue/splitter/jquery-1.11.1.min.js"></script>
|
@*<script type="text/javascript" src="~/js/Vue/splitter/demos.js"></script>*@
|
<script type="text/javascript" src="~/js/Vue/splitter/jqxcore.js"></script>
|
<script type="text/javascript" src="~/js/Vue/splitter/jqxsplitter.js"></script>
|
<script type="text/javascript" src="~/js/Vue/splitter/jqxbuttons.js"></script>
|
<script type="text/javascript" src="~/js/Vue/splitter/jqxscrollbar.js"></script>
|
<script type="text/javascript" src="~/js/Vue/splitter/jqxpanel.js"></script>
|
<script type="text/javascript">
|
|
$(document).ready(function () {
|
// $('#mainSplitter').jqxSplitter({ width: "100%", height: "398", orientation: 'horizontal', panels: [{ size: 215 }, { size: 120 }] });
|
// $('#mainSplitter').jqxSplitter({ resizable: true, width: "100%", height: window.innerHeight - 140, orientation: 'horizontal', panels: [{ size: 215, collapsible: false }, { size: 80, collapsible: true }] });
|
|
//$('#mainSplitter').on('resize',
|
// function (event) {
|
// var panels = event.args.panels;
|
// var panel1 = panels[0];
|
// var panel2 = panels[1];
|
|
// app.tableHeight = panel1.size - 36;
|
// app.tabHeight = panel2.size - 80;
|
// app.tabTableHeight = panel2.size - 10;
|
// });
|
|
$(window).on('resize', function () {
|
var h = window.innerHeight - $("#divBottom").height() - 100;
|
// alert(h);
|
$("#divTop").height(h);
|
// alert($("#divTop").height());
|
}).resize();
|
|
});
|
</script>
|
}
|
<div id="list" v-cloak>
|
<el-card class="box-card">
|
<el-form label-width="90px" v-bind:model="formData" class="demo-ruleForm" v-bind:inline="true">
|
<el-form-item label="日志名称:">
|
<el-input v-model="formData.logName" size="mini"></el-input>
|
</el-form-item>
|
|
<el-form-item label="日志类型:">
|
<hh-select-url v-model="formData.logType"
|
v-bind:options="formData.optionsLogType">
|
</hh-select-url>
|
</el-form-item>
|
|
<el-form-item label="日志来源:">
|
<el-input v-model="formData.logFrom" size="mini"></el-input>
|
</el-form-item>
|
|
<el-form-item label="日志内容:">
|
<el-input v-model="formData.logContent" size="mini"></el-input>
|
</el-form-item>
|
|
<el-form-item label="创建日期:" style="width:400px">
|
<el-date-picker v-model="formData.date"
|
type="daterange"
|
align="right"
|
unlink-panels
|
range-separator="至"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
value-format="yyyy-MM-dd"
|
v-on:change="selectTime"
|
v-bind:picker-options="pickerOptions2" size="mini" style="width:300px">
|
</el-date-picker>
|
</el-form-item>
|
|
</el-form>
|
<el-row style="padding-left: 10px; margin-top: 7px;">
|
<el-button style="margin-top:2px;" size="mini" type="primary" v-on:click="search">查 询</el-button>
|
<el-button size="mini" type="primary" v-on:click="start">开始</el-button>
|
@*<el-button size="mini" type="primary" v-on:click="end">完成</el-button>*@
|
<el-button size="mini" type="danger" v-on:click="cancel">删除</el-button>
|
<el-button size="mini" type="primary" v-on:click="exportExcel">导出</el-button>
|
</el-row>
|
</el-card>
|
|
<div id='jqxWidget'>
|
<div id="mainTransverse">
|
<!--mainSplitter-->
|
<div class="splitter-panel" id="divTop">
|
<hh-table v-bind:coloptions="logMstCols"
|
v-bind:paging="true"
|
v-bind:check="false"
|
v-bind:where="formData"
|
v-bind:rowno="true"
|
v-on:clickrow="clickRow"
|
dh="145"
|
url="@Url.Action("GetList")"
|
ref="tasklist"></hh-table>
|
</div>
|
<div class="splitter-panel" id="divBottom">
|
<el-tabs type="border-card" tab-position="top" v-bind:style="'height:420px'">
|
<el-tab-pane label="日志明细">
|
<hh-table v-bind:coloptions="logDtlCols"
|
v-bind:single="true"
|
v-bind:url="logDtlsUrl"
|
v-on:clickrow="clickDtlRow"
|
ref="itemList"
|
v-bind:height="210"></hh-table>
|
|
<div>
|
<el-input v-model="formData.logContentDes"
|
type="textarea"
|
rows="7"></el-input>
|
@*<el-form label-width="100px" class="demo-ruleForm" v-bind:inline="true">
|
<el-form-item label="内容:">
|
|
</el-form-item>
|
</el-form>*@
|
</div>
|
</el-tab-pane>
|
</el-tabs>
|
</div>
|
</div>
|
</div>
|
|
|
</div>
|
@section scripts{
|
<script>
|
var para = {
|
url: {
|
ExportExcel: "@Url.Action("ExportExcel")"
|
}
|
};
|
|
var outList = new Vue({
|
data: {
|
tabHeight: 65,
|
logDtlsUrl: "",
|
formData: {
|
stockCode: "",
|
taskType: "",
|
optionsLogType: [{ label: "全部", value: "" }, { label: "INFO", value: "INFO" }, { label: "DEBUG", value: "DEBUG" },
|
{ label: "ERROR", value: "ERROR" }, { label: "DETAIL", value: "DETAIL" }, ], //{ label: "开始取货", value: "开始取货" }, { label: "取货完成", value: "取货完成" }, , { label: "失败", value: "失败" }, { label: "空取", value: "空取" }
|
|
logName: "",
|
logType: "",
|
logFrom: "",
|
logContent: "",
|
|
taskState: "",
|
taskNo: "",
|
state: "",
|
date: "",
|
valueDate: "",
|
trayCode: "",
|
startArea: "",
|
endArea: "",
|
logContentDes: ""
|
},
|
where: {},
|
logMstCols: [
|
//{ f: "CN_S_LOG_INDEX", n: "索引", w: 45 },
|
{ f: "CN_S_GUID", n: "主键", w: 150, hidden: true },
|
{ f: "CN_S_LOG_TITLE", n: "名称", w: 196 },
|
{ f: "CN_S_LOG_TYPE", n: "类型", w: 80 },
|
{ f: "CN_S_LOG_FROM", n: "来源", w: 80 },
|
//{
|
// f: "CN_S_LOG_CONTENT", n: "内容", w: 600, align: 'left',
|
// format: function (row) {
|
// return row.CN_S_LOG_CONTENT;
|
// }
|
//},//hidden:'true'
|
{ f: "CN_T_CREATE", n: "创建时间", w: 160 },
|
],
|
logDtlCols: [
|
{ f: "CN_S_LOG_INDEX", n: "索引", w: 45 },
|
{
|
f: "CN_S_LOG_CONTENT", n: "内容", w: 540, align: 'left',
|
format: function (row) {
|
return row.CN_S_LOG_CONTENT;
|
}
|
},//hidden:'true'
|
{ f: "CN_T_CREATE", n: "创建时间", w: 160, hidden: true },
|
]
|
},
|
mounted: function () {
|
$this = this;
|
$this.pickerOptions2();
|
},
|
methods: {
|
clickRow: function (row, event, column) {
|
var mstGuid = row.CN_S_GUID;
|
this.logDtlsUrl = "/AllQuery/Log/GetDtls?mstGuid=" + mstGuid;
|
},
|
clickDtlRow: function (row, event, column) {
|
var content = row.CN_S_LOG_CONTENT;
|
this.formData.logContentDes = content;
|
},
|
search: function () {
|
var $this = this;
|
this.$refs.tasklist.loadData($this.formData);
|
},
|
exportExcel: function () {
|
$this = this;
|
var v = { formData: $this.formData, columns: $this.outCols };
|
ajaxManage({
|
url: para.url.ExportExcel,
|
data: JSON.stringify(v),
|
success: function (result) {
|
location.href = "/Basic/Common/GetFile?fileName=" + "123.xlsx"
|
//if (result.Success)
|
|
//else
|
// wms.error(result.Msg);
|
}
|
});
|
},
|
start: function () {
|
$this = this;
|
var valide = true;
|
this.selectMultiRowEvent(function (rows) {
|
wms.confirm("确认启动任务?", function () {
|
var taskNos = "";
|
rows.forEach(function (value, index, array) {
|
if (value.CN_S_STATE != "未执行") {
|
valide = false;
|
return false;
|
}
|
if (index != 0)
|
taskNos += ",";
|
taskNos += value.CN_S_TASK_NO;
|
});
|
|
if (!valide) {
|
wms.error("只能开始未执行的任务!");
|
return false;
|
}
|
ajaxManage({
|
url: "@Url.Action("StartTask")?taskNos=" + taskNos,
|
type: "Get",
|
success: function (data) {
|
if (data.Success) {
|
$this.$refs.tasklist.loadData();
|
wms.success("启动成功!");
|
}
|
else {
|
wms.error(data.Msg);
|
}
|
}
|
});
|
});
|
});
|
},
|
end: function () {
|
$this = this;
|
var valide = true;
|
this.selectMultiRowEvent(function (rows) {
|
wms.confirm("确认完成任务?", function () {
|
var taskNos = "";
|
rows.forEach(function (value, index, array) {
|
if (value.CN_S_STATE == "完成") {
|
valide = false;
|
return false;
|
}
|
if (index != 0)
|
taskNos += ",";
|
taskNos += value.CN_S_TASK_NO;
|
});
|
if (!valide) {
|
wms.error("只能完成未完成的任务!");
|
return false;
|
}
|
ajaxManage({
|
url: "@Url.Action("EndTask")?taskNos=" + taskNos,
|
type: "Get",
|
success: function (data) {
|
if (data.Success) {
|
$this.$refs.tasklist.loadData();
|
wms.success("完成成功!");
|
}
|
else {
|
wms.error(data.Msg);
|
}
|
}
|
});
|
});
|
});
|
},
|
cancel: function () {
|
$this = this;
|
var valide = true;
|
this.selectMultiRowEvent(function (rows) {
|
wms.confirm("确认取消任务?", function () {
|
var taskNos = "";
|
rows.forEach(function (value, index, array) {
|
if (value.CN_S_STATE != "未执行") {
|
valide = false;
|
}
|
if (index != 0)
|
taskNos += ",";
|
taskNos += value.CN_S_TASK_NO;
|
});
|
|
if (!valide) {
|
wms.error("只能取消未执行的任务!");
|
return false;
|
}
|
ajaxManage({
|
url: "@Url.Action("CancelTask")?taskNos=" + taskNos,
|
type: "Get",
|
success: function (data) {
|
console.log("取消任务:");
|
console.log(data);
|
if (data.Success) {
|
$this.$refs.tasklist.loadData();
|
wms.success("取消成功!");
|
}
|
else {
|
wms.error(data.Msg);
|
}
|
}
|
});
|
});
|
});
|
},
|
selectMultiRowEvent: function (callBack) {
|
var selectRow = this.$refs.tasklist.selections;
|
if (selectRow.length <= 0) {
|
wms.warning("最少选择一条记录");
|
return;
|
}
|
if (callBack)
|
callBack(selectRow);
|
},
|
selectSingleRowEvent: function (callBack) {
|
var selectRow = this.$refs.tasklist.selections;
|
if (selectRow.length != 1) {
|
wms.warning("请选择一条记录");
|
return;
|
}
|
if (callBack)
|
callBack(selectRow[0]);
|
},
|
selectTime: function (val) {
|
$this = this;
|
if (val != null)
|
$this.formData.valueDate = JSON.stringify(val);
|
else
|
$this.formData.valueDate = "";
|
},
|
pickerOptions2: function () {
|
shortcuts: [{
|
text: '最近一周',
|
onClick: function onClick(picker) {
|
var end = new Date();
|
var start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
picker.$emit('pick', [start, end]);
|
}
|
}, {
|
text: '最近一个月',
|
onClick: function onClick(picker) {
|
var end = new Date();
|
var start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
picker.$emit('pick', [start, end]);
|
}
|
}, {
|
text: '最近三个月',
|
onClick: function onClick(picker) {
|
var end = new Date();
|
var start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
picker.$emit('pick', [start, end]);
|
}
|
}]
|
}
|
},
|
watch: {
|
deep: true
|
},
|
el: '#list'
|
});
|
</script>
|
}
|