You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/BookingJieFeng/Views/Booking/OrderList.cshtml

607 lines
35 KiB
Plaintext

2 years ago
@using BookingJieFeng.DB.Model
@{
var cfgData = ViewBag.ColumnConfigData;
var dicColMap = ViewBag.ColDic as Dictionary<string, string>;
}
<div class="top-navigation">
<div class="row">
<nav class="navbar">
<div class="navbar-collapse navbar-bottom collapse">
<ul class="nav navbar-nav orderlist-nav">
<li><a class="tabs" data-url="@Url.Action("Order")" data-title="新建订舱"><i></i>新建订舱</a><span></span></li>
<li><a id="btnCopy"><i></i>复制订舱</a><span></span></li>
</ul>
<div class="set-column">
<a id="btnSetCol">设置列</a>
</div>
</div>
</nav>
</div>
</div>
<div class="wrapper-content J_mainContent gray-bg-right">
<div class="row row-margin">
<div class="ibox">
<div class="ibox-title">
<h5>订舱台账</h5>
</div>
<div class="ibox-content">
<form class="form-horizontal" id="formCond">
<div class="col-lg-2 col-md-3 form-group">
<input type="text" class="form-control order" name="MBLNO" placeholder="提单号" />
</div>
<div class="col-lg-2 col-md-2 form-group col-m">
<input type="text" class="form-control date" name="ETD_START" id="ETD_START" placeholder="起始时间" />
</div>
<div class="col-lg-2 col-md-2 form-group">
<input type="text" class="form-control date" name="ETD_END" id="ETD_END" placeholder="结束时间" />
</div>
<div class="col-lg-2 col-md-3 form-group col-m">
<input type="text" class="form-control order" name="VESSEL" placeholder="航名" />
</div>
<div class="col-lg-1 col-md-2 form-group">
<input type="text" class="form-control order" name="VOYNO" placeholder="航次" />
</div>
<div class="clearfix"></div>
<div class="col-lg-2 col-md-3 form-group">
<input type="text" class="form-control order" name="PORTDISCHARGE" placeholder="卸货港" />
</div>
<div class="col-lg-2 col-md-3 form-group">
<select class="form-control select" name="SISTATUS">
<option value="" disabled selected>选择截单状态</option>
<option value="">全部</option>
<option value="NOT">未截单</option>
<option value="YES">已截单</option>
</select>
</div>
<div class="col-lg-3 col-md-3 col-sm-12 form-group">
<a class="btn btn-resect" id="btn-reset">重置</a>
<a class="btn btn-query" id="btnSearch">搜索</a>
</div>
</form>
<!--状态及截单状态-->
<div class="col-lg-12 col-md-12 state-tips">
<div class="col-lg-1 col-md-2 tit">状态:</div>
<div class="col-lg-1 col-md-2 nosubmit">
<i></i>未提交/无
</div>
<div class="col-lg-1 col-md-2 yessubmit">
<i></i>已提交/提交
</div>
<div class="col-lg-2 col-md-2 order-yes">
<i></i>订舱确认/截单确认
</div>
</div>
<!--
未提交/无 class='nosubmit'
已提交/提交 class='yessubmit'
订舱确认/截单确认 class='order-yes'
-->
<div class="clearfix"></div>
<div class="tabs-container">
<ul class="nav nav-tabs" id="ulNavHead">
<li class="active" data-idx="0">
<a data-toggle="tab" href="#tab-1" aria-expanded="false">全部</a>
</li>
<li data-idx="1">
<a data-toggle="tab" href="#tab-2" aria-expanded="true">未提交</a>
</li>
<li data-idx="2">
<a data-toggle="tab" href="#tab-3" aria-expanded="true">已提交</a>
</li>
<li data-idx="3">
<a data-toggle="tab" href="#tab-4" aria-expanded="true">订舱确认</a>
</li>
</ul>
<div class="tab-content">
<div id="tab-1" class="tab-pane active">
<div class="panel-body">
<table id="tableAll"
data-idx="0"
data-toggle="table"
data-show-refresh="false"
data-show-toggle="false"
data-show-columns="false"
data-url="@Url.Action("OrderListData")"
data-content-type="application/x-www-form-urlencoded"
data-pagination="true"
data-side-pagination="server"
data-total-field="Total"
data-data-field="DataList"
data-page-number="1"
data-page-size="10"
data-query-params="queryParams"
data-method="post"
data-server-sort="true"
data-click-to-select="true"
data-single-select="true"
class="data-table">
<thead>
<tr>
<th data-checkbox="true"></th>
@if (cfgData == null)
{
<th data-field="CARRIER" data-sortable="true">船公司</th>
<th data-field="CNTRTOTAL" data-sortable="true">集装箱</th>
<th data-field="PORTDISCHARGE" data-sortable="true">卸货港</th>
<th data-field="CONTRACTNO" data-sortable="true">约号</th>
<th data-field="VESSEL" data-sortable="true">船名</th>
<th data-field="VOYNO" data-sortable="true">航次</th>
<th data-field="MBLNO" data-sortable="true">提单号</th>
<th data-field="ETD" data-sortable="true">开船日期</th>
<th data-field="DESTINATION" data-sortable="true">目的地</th>
<th data-field="PONO" data-sortable="true">PO NO.</th>
<th data-field="BusinessNO" data-sortable="true">业务编号</th>
<th data-field="CLOSINGDATE" data-sortable="true">截港日期</th>
<th data-field="CLOSEDOCDATE" data-sortable="true">截单日期</th>
<th data-field="YARD" data-sortable="true">场站</th>
<th data-field="YardContract" data-sortable="true">场站联系人</th>
<th data-field="BSSTATUS_NAME" data-formatter="fmtStatus" data-sortable="true">状态</th>
<th data-field="SISTATUS_NAME" data-sortable="true">截单状态</th>
}
else
{
foreach (var item in cfgData)
{
var vis = Convert.ToBoolean(item.visible);
string colName = item.colName.ToString();
string colTitle = dicColMap.ContainsKey(colName) ? dicColMap[colName] : colName;
if (vis)
{
<th data-field="@colName" data-sortable="true" @Html.Raw(colName == "BSSTATUS_NAME" ? "data-formatter='fmtStatus'" : "") @Html.Raw((item.width > 0 ? "data-width='" + item.width + "'" : ""))>
@colTitle
</th>
}
}
}
<th data-field="ORDNO" data-formatter="operateFormatter">操作</th>
</tr>
</thead>
</table>
</div>
</div>
<div id="tab-2" class="tab-pane">
<div class="panel-body">
<table id="tableCreate"
data-idx="1"
data-toggle="table"
data-show-refresh="false"
data-show-toggle="false"
data-show-columns="false"
data-url="@Url.Action("OrderListData")"
data-content-type="application/x-www-form-urlencoded"
data-pagination="true"
data-side-pagination="server"
data-total-field="Total"
data-data-field="DataList"
data-page-number="1"
data-page-size="10"
data-query-params="queryParams"
data-method="post"
data-server-sort="true"
data-click-to-select="true"
data-single-select="true"
class="data-table">
<thead>
<tr>
<th data-checkbox="true"></th>
@if (cfgData == null)
{
<th data-field="CARRIER" data-sortable="true">船公司</th>
<th data-field="CNTRTOTAL" data-sortable="true">集装箱</th>
<th data-field="PORTDISCHARGE" data-sortable="true">卸货港</th>
<th data-field="CONTRACTNO" data-sortable="true">约号</th>
<th data-field="VESSEL" data-sortable="true">船名</th>
<th data-field="VOYNO" data-sortable="true">航次</th>
<th data-field="MBLNO" data-sortable="true">提单号</th>
<th data-field="ETD" data-sortable="true">开船日期</th>
<th data-field="DESTINATION" data-sortable="true">目的地</th>
<th data-field="PONO" data-sortable="true">PO NO.</th>
<th data-field="BusinessNO" data-sortable="true">业务编号</th>
<th data-field="CLOSINGDATE" data-sortable="true">截港日期</th>
<th data-field="CLOSEDOCDATE" data-sortable="true">截单日期</th>
<th data-field="YARD" data-sortable="true">场站</th>
<th data-field="YardContract" data-sortable="true">场站联系人</th>
<th data-field="BSSTATUS_NAME" data-formatter="fmtStatus" data-sortable="true">状态</th>
<th data-field="SISTATUS_NAME" data-sortable="true">截单状态</th>
}
else
{
foreach (var item in cfgData)
{
var vis = Convert.ToBoolean(item.visible);
string colName = item.colName.ToString();
string colTitle = dicColMap.ContainsKey(colName) ? dicColMap[colName] : colName;
if (vis)
{
<th data-field="@colName" data-sortable="true" @Html.Raw(colName == "BSSTATUS_NAME" ? "data-formatter='fmtStatus'" : "") @Html.Raw((item.width > 0 ? "data-width='" + item.width + "'" : ""))>
@colTitle
</th>
}
}
}
<th data-field="ORDNO" data-formatter="operateFormatter">操作</th>
</tr>
</thead>
</table>
</div>
</div>
<div id="tab-3" class="tab-pane">
<div class="panel-body">
<table id="tableSubmit"
data-idx="2"
data-toggle="table"
data-show-refresh="false"
data-show-toggle="false"
data-show-columns="false"
data-url="@Url.Action("OrderListData")"
data-content-type="application/x-www-form-urlencoded"
data-pagination="true"
data-side-pagination="server"
data-total-field="Total"
data-data-field="DataList"
data-page-number="1"
data-page-size="10"
data-query-params="queryParams"
data-method="post"
data-server-sort="true"
data-click-to-select="true"
data-single-select="true"
class="data-table">
<thead>
<tr>
<th data-checkbox="true"></th>
@if (cfgData == null)
{
<th data-field="CARRIER" data-sortable="true">船公司</th>
<th data-field="CNTRTOTAL" data-sortable="true">集装箱</th>
<th data-field="PORTDISCHARGE" data-sortable="true">卸货港</th>
<th data-field="CONTRACTNO" data-sortable="true">约号</th>
<th data-field="VESSEL" data-sortable="true">船名</th>
<th data-field="VOYNO" data-sortable="true">航次</th>
<th data-field="MBLNO" data-sortable="true">提单号</th>
<th data-field="ETD" data-sortable="true">开船日期</th>
<th data-field="DESTINATION" data-sortable="true">目的地</th>
<th data-field="PONO" data-sortable="true">PO NO.</th>
<th data-field="BusinessNO" data-sortable="true">业务编号</th>
<th data-field="CLOSINGDATE" data-sortable="true">截港日期</th>
<th data-field="CLOSEDOCDATE" data-sortable="true">截单日期</th>
<th data-field="YARD" data-sortable="true">场站</th>
<th data-field="YardContract" data-sortable="true">场站联系人</th>
<th data-field="BSSTATUS_NAME" data-formatter="fmtStatus" data-sortable="true">状态</th>
<th data-field="SISTATUS_NAME" data-sortable="true">截单状态</th>
}
else
{
foreach (var item in cfgData)
{
var vis = Convert.ToBoolean(item.visible);
string colName = item.colName.ToString();
string colTitle = dicColMap.ContainsKey(colName) ? dicColMap[colName] : colName;
if (vis)
{
<th data-field="@colName" data-sortable="true" @Html.Raw(colName == "BSSTATUS_NAME" ? "data-formatter='fmtStatus'" : "") @Html.Raw((item.width > 0 ? "data-width='" + item.width + "'" : ""))>
@colTitle
</th>
}
}
}
<th data-field="ORDNO" data-formatter="operateFormatter">操作</th>
</tr>
</thead>
</table>
</div>
</div>
<div id="tab-4" class="tab-pane">
<div class="panel-body">
<table id="tableConfirm"
data-idx="3"
data-toggle="table"
data-show-refresh="false"
data-show-toggle="false"
data-show-columns="false"
data-url="@Url.Action("OrderListData")"
data-content-type="application/x-www-form-urlencoded"
data-pagination="true"
data-side-pagination="server"
data-total-field="Total"
data-data-field="DataList"
data-page-number="1"
data-page-size="10"
data-query-params="queryParams"
data-method="post"
data-detail-view="true"
data-detail-formatter="detailFormatter"
data-server-sort="true"
data-click-to-select="true"
data-single-select="true"
class="data-table">
<thead>
<tr>
<th data-checkbox="true"></th>
@if (cfgData == null)
{
<th data-field="CARRIER" data-sortable="true">船公司</th>
<th data-field="CNTRTOTAL" data-sortable="true">集装箱</th>
<th data-field="PORTDISCHARGE" data-sortable="true">卸货港</th>
<th data-field="CONTRACTNO" data-sortable="true">约号</th>
<th data-field="VESSEL" data-sortable="true">船名</th>
<th data-field="VOYNO" data-sortable="true">航次</th>
<th data-field="MBLNO" data-sortable="true">提单号</th>
<th data-field="ETD" data-sortable="true">开船日期</th>
<th data-field="DESTINATION" data-sortable="true">目的地</th>
<th data-field="PONO" data-sortable="true">PO NO.</th>
<th data-field="BusinessNO" data-sortable="true">业务编号</th>
<th data-field="CLOSINGDATE" data-sortable="true">截港日期</th>
<th data-field="CLOSEDOCDATE" data-sortable="true">截单日期</th>
<th data-field="YARD" data-sortable="true">场站</th>
<th data-field="YardContract" data-sortable="true">场站联系人</th>
<th data-field="BSSTATUS_NAME" data-formatter="fmtStatus" data-sortable="true">状态</th>
<th data-field="SISTATUS_NAME" data-sortable="true">截单状态</th>
}
else
{
foreach (var item in cfgData)
{
var vis = Convert.ToBoolean(item.visible);
string colName = item.colName.ToString();
string colTitle = dicColMap.ContainsKey(colName) ? dicColMap[colName] : colName;
if (vis)
{
<th data-field="@colName" data-sortable="true" @Html.Raw(colName == "BSSTATUS_NAME" ? "data-formatter='fmtStatus'" : "") @Html.Raw((item.width > 0 ? "data-width='" + item.width + "'" : ""))>
@colTitle
</th>
}
}
}
<th data-field="ORDNO" data-formatter="operateFormatter">操作</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="ibox-content">
</div>
</div>
</div>
</div>
@section styles
{
<link type="text/css" rel="stylesheet" href="~/Content/hplus/css/plugins/datapicker/datepicker3.css" />
<link type="text/css" rel="stylesheet" href="~/Content/css/orderlist.css" />
<link type="text/css" rel="stylesheet" href="~/Content/hplus/css/plugins/footable/footable.core.css" />
}
@section scripts{
<script src="~/Content/hplus/js/plugins/validate/jquery.validate.min.js"></script>
<script src="~/Content/hplus/js/plugins/suggest/bootstrap-suggest.min.js"></script>
<script src="~/Content/hplus/js/plugins/datapicker/bootstrap-datepicker.js"></script>
<script src="~/Content/js/validatorConfig.js"></script>
<script src="~/Content/js/jquery.form.js"></script>
<script src="~/Content/js/common.js"></script>
<script src="~/Content/hplus/js/contabs.min.js"></script>
<script>
var layerIndex;
$(function () {
$("#btn-reset").click(function () {
$(".form-horizontal input").val('');
});
$('#tableAll').bootstrapTable({ height: $(window).height() - 150 });
$('#tableCreate').bootstrapTable({ height: $(window).height() - 150 });
$('#tableSubmit').bootstrapTable({ height: $(window).height() - 150 });
$('#tableConfirm').bootstrapTable({ height: $(window).height() - 150 });
$("#btnSearch").click(function () {
var idx = $("#ulNavHead li.active").data("idx");
if (idx == "0") {
$('#tableAll').bootstrapTable('refresh')
} else if (idx == "1") {
$('#tableCreate').bootstrapTable('refresh')
} else if (idx == "2") {
$('#tableSubmit').bootstrapTable('refresh')
} else if (idx == "3") {
$('#tableConfirm').bootstrapTable('refresh')
}
})
$('#ETD_START,#ETD_END').datepicker({
autoclose: true,
format: "yyyy-mm-dd"
});
$("#btnCopy").click(function () {
var sel = $('#tableAll').bootstrapTable('getSelections')
if (sel.length != 1) {
layer.alert('@Resources.LangOrder.MsgChooseOneToCopy');
return;
}
parent.addMenuTab("@Url.Action("Copy")?srcORDNO=" + sel[0].ORDNO, '@Resources.LangOrder.BtnCopy', 0)
})
$("#btnSetCol").click(function () {
layerIndex = layer.open({
type: 2,
title: '设置列',
area: ['800px', '700px'],
content: '@Url.Action("ColumnConfig")?module=@ConfigData.ModuleOrder&cate=@ConfigData.CateListColumn'
});
})
//双击打开
$('table.data-table').on('dbl-click-row.bs.table', function ($element, row, field) {
var titleNO = row.MBLNO;
if (titleNO == null || titleNO.length == 0) {
titleNO = row.ORDERNO;
}
parent.addMenuTab('@Url.Action("Order")?ordno=' + row.ORDNO, titleNO, 0)
})
});
function queryParams(params) {
var cond = $("#formCond").serializeObject();
params.MBLNO = cond.MBLNO;
params.ETD_START = cond.ETD_START;
params.ETD_END = cond.ETD_END;
params.PORTDISCHARGE = cond.PORTDISCHARGE;
params.VESSEL = cond.VESSEL;
params.VOYNO = cond.VOYNO;
params.SISTATUS = cond.SISTATUS;
var idx = this.idx
if (idx == "1") {
params.BSSTATUS = "Create";
} else if (idx == "2") {
params.BSSTATUS = "Submit";
} else if (idx == "3") {
params.BSSTATUS = "Confirm";
}
return params
}
function operateFormatter(value, row, index) {
var titleNO = row.MBLNO;
if (titleNO == null || titleNO.length == 0) {
titleNO = row.ORDERNO;
}
if (row.BSSTATUS == "@OrderStatus.Create") {
return [
'<a class="audit tabs" data-url="@Url.Action("Order")?ordno=' + row.ORDNO + '" data-title="' + titleNO + '@Resources.LangAll.LinkTitleOrder">',
'<i class="fa fa-edit"></i>@Resources.LangAll.BtnEdit',
'</a>'
].join('');
} else if (row.BSSTATUS == "@OrderStatus.Submit") {
return [
'<a class="audit tabs" data-url="@Url.Action("Order")?ordno=' + row.ORDNO + '" data-title="' + titleNO + '@Resources.LangAll.LinkTitleOrder">',
'<i class="fa fa-eye"></i>@Resources.LangAll.BtnView',
'</a>'
].join('');
}
else if (row.BSSTATUS == "@OrderStatus.Confirm" && !row.HasConfirm) {
return [
'<a class="audit tabs" data-url="@Url.Action("Confirm")?ordno=' + row.ORDNO + '" data-title="' + titleNO + '@Resources.LangAll.LinkTitleConfirm">',
'<i class="fa fa-edit"></i>@Resources.LangOrder.BtnConfirm',
'</a><br/>',
'<a class="audit tabs" data-url="@Url.Action("Order")?ordno=' + row.ORDNO + '" data-title="' + titleNO + '@Resources.LangAll.LinkTitleOrder">',
'<i class="fa fa-eye"></i>@Resources.LangAll.BtnView',
'</a>'
].join('');
} else {
return [
'<a class="audit tabs" data-url="@Url.Action("Order")?ordno=' + row.ORDNO + '" data-title="' + titleNO + '@Resources.LangAll.LinkTitleOrder">',
'<i class="fa fa-eye"></i>@Resources.LangAll.BtnView',
'</a>'
].join('');
}
return '';
}
function fmtStatus(value, row, index) {
if (row.BSSTATUS == '@OrderStatus.Create') {
return '<div class="nosubmit">' + row.BSSTATUS_NAME + '</div>'
}
else if (row.BSSTATUS == '@OrderStatus.Submit') {
return '<div class="yessubmit">' + row.BSSTATUS_NAME + '</div>'
}
else if (row.BSSTATUS == '@OrderStatus.Confirm') {
return '<div class="order-yes">' + row.BSSTATUS_NAME + '</div>'
}
else {
return '<div class="order-yes">' + row.BSSTATUS_NAME + '</div>'
}
}
function detailFormatter(index, row) {
//var html = []
//$.each(row, function (key, value) {
// html.push('<p><b>' + key + ':</b> ' + value + '</p>')
//})
//return html.join('')
var html;
if (row.ConfirmList.length > 0) {
html = '<table class="table"><thead><tr>';
var arr = [
'@Resources.LangAll.LabelCARRIER',
'@Resources.LangAll.LabelYARD',
'@Resources.LangAll.LabelCNTRTOTAL',
'@Resources.LangAll.LabelPORTLOAD',
'@Resources.LangAll.LabelPORTDISCHARGE',
'@Resources.LangAll.LabelCONTRACTNO',
'@Resources.LangAll.LabelVESSEL',
'@Resources.LangAll.LabelVOYNO',
'@Resources.LangAll.LabelMBLNO',
'@Resources.LangAll.LabelETD',
'@Resources.LangAll.LabelBSSTATUS'
];
for (var idx in arr) {
html += '<td>' + arr[idx] + '</td>'
}
html += '</tr></thead><tbody>';
for (var i = 0; i < row.ConfirmList.length; i++) {
html += '<tr>';
html += '<td>' + row.ConfirmList[i].CARRIER + '</td>';
html += '<td>' + row.ConfirmList[i].YARD + '</td>';
html += '<td>' + row.ConfirmList[i].CNTRTOTAL + '</td>';
html += '<td>' + row.ConfirmList[i].PORTLOAD + '</td>';
html += '<td>' + row.ConfirmList[i].PORTDISCHARGE + '</td>';
html += '<td>' + row.ConfirmList[i].CONTRACTNO + '</td>';
html += '<td>' + row.ConfirmList[i].VESSEL + '</td>';
html += '<td>' + row.ConfirmList[i].VOYNO + '</td>';
html += '<td><a class="tabs" data-url="@Url.Action("ConfirmEdit")?sino=' + row.ConfirmList[i].SINO + '" data-title="' + row.ConfirmList[i].MBLNO + '@Resources.LangAll.LinkTitleConfirm">' + row.ConfirmList[i].MBLNO + '</a></td>';
html += '<td>' + row.ConfirmList[i].ETD + '</td>';
if (row.ConfirmList[i].BSSTATUS == "@OrderConfirmStatus.Create" || row.ConfirmList[i].BSSTATUS == "@OrderConfirmStatus.Reject") {
html += '<td class="nosubmit">' + row.ConfirmList[i].BSSTATUS_NAME + '</td>';
}
else if (row.ConfirmList[i].BSSTATUS == "@OrderConfirmStatus.Submit") {
html += '<td class="yessubmit">' + row.ConfirmList[i].BSSTATUS_NAME + '</td>';
}
else if (row.ConfirmList[i].BSSTATUS == "@OrderConfirmStatus.Confirm") {
html += '<td class="order-yes">' + row.ConfirmList[i].BSSTATUS_NAME + '</td>';
}
else {
html += '<td>' + row.ConfirmList[i].BSSTATUS_NAME + '</td>';
}
html += '</tr>';
}
html += '</tbody></table>';
} else {
html = '<span>没有截单数据</span>'
}
return html;
}
</script>
}