795 lines
31 KiB
JavaScript
795 lines
31 KiB
JavaScript
// tradeConfirmBookListByClient.js
|
|
var valuedate = page.valuedate;
|
|
const colModelGrid = (new function () {
|
|
// 定义列模型
|
|
this.colModels = [
|
|
{
|
|
name: '',
|
|
label: '操作',
|
|
width: 450,
|
|
align: 'left',
|
|
formatter: showToolName
|
|
}, {
|
|
name: 'ClientId',
|
|
hidden: true,
|
|
optionHide: true
|
|
},
|
|
{
|
|
name:"id",
|
|
label: 'id',
|
|
width: 100,
|
|
hidden: true,
|
|
optionHide: true,
|
|
key: true,
|
|
},{ label: '合约编号', name: 'ContractCode', width: 240, },
|
|
{ label: '客户名称', name: 'ClientName', width: 150 },
|
|
{ label: '交易日期', name: 'TradeDate', width: 100, align: 'center' ,formatter: 'date' },
|
|
{ label: '多空头', name: 'PositionType', width: 80, align: 'center',
|
|
formatter: function (cellValue, options, rowObject) {
|
|
return cellValue == 1 ? "多头" : "空头";
|
|
}
|
|
},
|
|
{ label: '用印状态', name: 'StampStatus', width: 80, align: 'center' }, // 根据实际需要调整宽度和对齐
|
|
{ label: '邮件发送结果', name: 'EmailResult', width: 100, align: 'center',
|
|
formatter: function (cellValue, options, rowObject) {
|
|
var html = "";
|
|
html += "<label>{0}</lable>".template( rowObject.EmailResult);
|
|
return html;
|
|
}
|
|
},
|
|
{ label: 'OA状态', name: 'OAStatus', width: 100, align: 'center' },
|
|
{ label: 'OA-URL', name: 'OAURL', width: 150, align: 'center',
|
|
formatter: function (cellValue, options, rowObject) {
|
|
if (cellValue && cellValue.length > 0) {
|
|
return '<a href="' + cellValue + '" target="_blank">查看</a>';
|
|
}
|
|
return '';
|
|
}
|
|
},
|
|
{ label: 'OA消息', name: 'OAMessage', width: 150, align: 'left' },
|
|
{ label: '交易数量', name: 'tradeCount', width: 80, align: 'center' },
|
|
{ label: 'tradeIds', name: 'tradeIds', hidden: true, optionHide: true }];
|
|
this.upload = function (encryptId, sendMail) {
|
|
var srcurl = "/TradeConfirmBook/confirmBookUpload/?Id=" + encryptId + "&SendMailId=" + sendMail;
|
|
main.open("上传确认书", srcurl, {
|
|
area: ['500px', '420px'],
|
|
end: function () { SearchClick(true) }
|
|
});
|
|
}
|
|
this.uploadNew = function (encryptId) {
|
|
var srcurl = "/TradeConfirmBook/confirmBookUploadNew/?Id=" + encryptId;
|
|
main.open("上传确认书", srcurl, {
|
|
area: ['500px', '420px'],
|
|
end: function () { SearchClick(true) }
|
|
});
|
|
}
|
|
this.ViewErrInfo = function (code) {
|
|
main.post("/trade/GetSealErrMsg/", { code: code },
|
|
{
|
|
success: function (resp) {
|
|
main.alert(resp.msg);
|
|
}
|
|
});
|
|
}
|
|
|
|
if (page.ConfirmBookStampStatus) {
|
|
var colObj = {
|
|
name: '',
|
|
label: '用印扫描件',
|
|
index: '',
|
|
width: 250,
|
|
align: 'left',
|
|
formatter: function (cellValue, options, rowObject) {
|
|
var templateHtml = "";
|
|
if (page.IsAutoSealAndUploadFiles && !page.IsAutoSealAfterGeneratedBook) {
|
|
templateHtml += "<input type=\"button\" class=\"wentiEdit\" {2} value=\"用印\" />";
|
|
}
|
|
var canGenerate = page.canGenerate == true ? "" : "disabled";
|
|
templateHtml += "<input type=\"button\" class=\"wentiEdit\" {0} value=\"上传\" +" + canGenerate + "/>" +
|
|
"<input type=\"button\" class=\"wentiEdit\" {1} value=\"下载\" />";
|
|
var html = (templateHtml)
|
|
.template(
|
|
(rowObject.ContractDocUrl ? 'onclick="colModelGrid.upload(\'{0}\',\'{1}\')"'.template(rowObject.ContractDocId, rowObject.tradeIds[0]) : "disabled"),
|
|
(rowObject.StampDocumentFileName ? 'onclick="main.downloadFiles(\'{0}\')"'.template(rowObject.StampDocumentFileName) : "disabled"));
|
|
if (page.IsAutoSealAndUploadFiles && !page.IsAutoSealAfterGeneratedBook) {
|
|
html = (templateHtml)
|
|
.template(
|
|
(rowObject.ContractDocUrl ? 'onclick="colModelGrid.upload(\'{0}\',\'{1}\')"'.template(rowObject.ContractDocId, rowObject.tradeIds[0]) : "disabled"),
|
|
(rowObject.StampDocumentFileName ? 'onclick="main.downloadFiles(\'{0}\')"'.template(rowObject.StampDocumentFileName) : "disabled"),
|
|
('onclick="SealContract(\'{0}\')"'.template(rowObject.ContractDocId))
|
|
);
|
|
}
|
|
if (rowObject.ContractDocUrl) {
|
|
html = html + (rowObject.ContractStatus === "草稿" || !rowObject.ContractStatus ? "未用印" : rowObject.ContractStatus);
|
|
}
|
|
return html;
|
|
}
|
|
};
|
|
this.colModels.splice(2, 0, colObj);
|
|
}
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
|
|
var colObj1 = {
|
|
name: 'SealResult',
|
|
label: '电子章用印结果',
|
|
index: 'SealResult',
|
|
width: 150,
|
|
align: 'center',
|
|
sortable: false,
|
|
formatter: function (cellValue, options, rowObject) {
|
|
|
|
if (rowObject.MetaDic.SealResult == "失败") {
|
|
var html = ("<span style='color:red;'>失败</span><a href='javascript:;' style='color:blue;' title='查看失败详情' onclick=\"colModelGrid.ViewErrInfo('{0}')\" ><详情></a>")
|
|
.template(rowObject.ContractCode);
|
|
return html;
|
|
}
|
|
else {
|
|
return rowObject.SealResult;
|
|
}
|
|
}
|
|
};
|
|
var colObj2 = {
|
|
name: 'SealTime',
|
|
label: '电子章用印时间',
|
|
index: 'SealTime',
|
|
width: 150,
|
|
align: 'left',
|
|
sortable: false,
|
|
formatter: function (cellValue, options, rowObject) {
|
|
return rowObject.MetaDic.SealTime;
|
|
}
|
|
};
|
|
this.colModels.push(colObj1, colObj2);
|
|
}
|
|
|
|
}());
|
|
$(function () {
|
|
// 初始化jqGrid
|
|
|
|
|
|
$("#DateFromOpenDate").datepicker({
|
|
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
|
|
onSelect: function (selectedDate) {//选择日期后执行的操作
|
|
setValidation("DateToOpenDate", selectedDate, false);
|
|
}
|
|
});
|
|
$("#DateToOpenDate").datepicker({
|
|
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
|
|
onSelect: function (selectedDate) {//选择日期后执行的操作
|
|
setValidation("DateFromOpenDate", selectedDate, true);
|
|
}
|
|
});
|
|
$("#DateToOpenDate").val(valuedate);
|
|
$("#DateFromOpenDate").val(valuedate);
|
|
// 其他按钮事件绑定 (如果添加了批量操作按钮)
|
|
// $("#batchDownloadBtn").click(BatchDownLoadDoc);
|
|
// $("#batchSendMailBtn").click(BatchSendMail);
|
|
initJqGrid();
|
|
SendEmailHub()
|
|
SendOAHub(); // 初始化OA发送功能
|
|
});
|
|
|
|
// 初始化jqGrid函数
|
|
function initJqGrid() {
|
|
var PostData = {
|
|
ContractCode: $("#ContractCode").val(),
|
|
ClientIds: $("#ClientIds").val(), // 获取多选下拉框的值
|
|
StartDate: $("#DateFromOpenDate").val(),
|
|
EndDate: $("#DateToOpenDate").val(),
|
|
}
|
|
var __jq = {
|
|
AfterInsertRow: typeof AfterInsertRow !== 'undefined' ? AfterInsertRow : void 0,
|
|
rowclick: typeof rowclick !== 'undefined' ? rowclick : void 0,
|
|
rowdblclick: typeof rowdblclick !== 'undefined' ? rowdblclick : void 0,
|
|
gridComplete: typeof gridComplete !== 'undefined' ? gridComplete : void 0,
|
|
onJqgridPaging: typeof onJqgridPaging !== 'undefined' ? onJqgridPaging : void 0
|
|
};
|
|
var grid = jQuery('#listGrid').jqGrid({
|
|
url: page.clientConfirmQueryUrl, // 从page对象获取数据URL,
|
|
datatype: page.initEmptyView ? 'local' : 'json',
|
|
height: 'auto',
|
|
width: '90%',
|
|
autowidth: false,
|
|
shrinkToFit: false,
|
|
viewrecords: true,
|
|
jsonReader: { repeatitems: false },
|
|
cmTemplate: { align: 'center', width: 120 },
|
|
mtype: 'POST',
|
|
postData: PostData,
|
|
afterInsertRow: __jq.AfterInsertRow,
|
|
onSelectRow: __jq.rowclick,
|
|
ondblClickRow: __jq.rowdblclick,
|
|
colModel: colModelGrid.colModels,
|
|
pager: jQuery('#pagerGrid'),
|
|
pagerpos: 'left',
|
|
rowNum: 20,
|
|
rowList: [20, 30, 50, 200, 10000],
|
|
loadComplete: __jq.gridComplete,
|
|
onPaging: __jq.onJqgridPaging,
|
|
multiselect: !(page.SettleDocModeMultiple && page.BrokerMode)
|
|
});
|
|
page.initEmptyView && jQuery("#listGrid").jqGrid('setGridParam', { datatype: 'json' });
|
|
}
|
|
|
|
// 重新加载jqGrid数据函数
|
|
function reloadJqGrid() {
|
|
SearchClick();
|
|
$('#modal-edittrade').modal('hide');
|
|
}
|
|
|
|
function showcolumnChooser() {
|
|
var jgrid = jQuery('#listGrid');
|
|
main.showcolumnChooser(jgrid, page.configcolumn);
|
|
}
|
|
|
|
function SearchClick(isSearchclick) {
|
|
var listGrid = $('#listGrid');
|
|
listGrid.appendPostData({ ContractCode: $("#ContractCode").val() });
|
|
listGrid.appendPostData({ ClientIds: $("#ClientIds").val()});
|
|
listGrid.appendPostData({ StartDate: $("#DateFromOpenDate").val() });
|
|
listGrid.appendPostData({ EndDate: $("#DateToOpenDate").val() });
|
|
listGrid.appendPostData({ PositionTypes: $("#MultiHead").val() });
|
|
|
|
if (isSearchclick) {
|
|
//点击搜索时默认第一页
|
|
listGrid.jqGrid('setGridParam', { page: 1 });
|
|
}
|
|
listGrid.trigger('reloadGrid');
|
|
}
|
|
|
|
function showToolName(cellValue, options, rowObject) {
|
|
var sentMailCount = rowObject.SentMailCount;
|
|
if (!sentMailCount) {
|
|
sentMailCount = 0;
|
|
}
|
|
var html = showDownload(cellValue, options, rowObject);
|
|
|
|
var title = page.IsAutoSealAndUploadFiles && page.IsAutoSealAfterGeneratedBook ? "生成并用印" : "生成确认书";
|
|
var canGenerate = page.canGenerate == true ? "" : "disabled";
|
|
var isWait = (rowObject.SealResult == "用印等待中");
|
|
html += "<input type=\"button\" class='wentiEdit' title='{2}' onclick=\"gJGenerateConfirmBook([{0}],{3},{1})\" value='{2}' {4}/>".template(rowObject.tradeIds, rowObject.HasGeneratedConfirmBook, title, isWait, canGenerate);
|
|
if (rowObject.ContractDocUrl && page.canSendEmail == true) {
|
|
html += "<input type=\"button\" class=\"wentiEdit\" title='发送交易所在的交易确认书到客户对应接收Email' onclick=\"sentMail('{0}')\" value=\"{1}\" />"
|
|
.template(rowObject.ContractCode, "发送Email");
|
|
} else {
|
|
html += "<input type=\"button\" class=\"wentiEdit\" title='交易确认书未生成或未找到制定确认书文件' disabled readonly=\"true\" value=\"{1}\" />"
|
|
.template(rowObject.EncryptId, "发送Email");
|
|
}
|
|
var canUpload = page.canGenerate == true && rowObject.ContractDocUrl ? "" : "disabled";
|
|
html += "<input type=\"button\" class=\"wentiEdit\" value=\"上传\" onclick=\"colModelGrid.uploadNew('{0}')\" {1} />".template(rowObject.ContractCode, canUpload);
|
|
|
|
// 添加发送OA按钮
|
|
html += "<input type=\"button\" class=\"wentiEdit\" title='发送交易确认书到OA系统' onclick=\"sendOA('{0}')\" value=\"发送OA\" />"
|
|
.template(rowObject.id);
|
|
return html;
|
|
}
|
|
|
|
function setValidation(elId, selectedDate, isSetMax) {
|
|
if (isSetMax) {
|
|
var time = selectedDate.split("-");
|
|
var year = time[0];
|
|
var month = time[1] - 1;
|
|
var day = time[2];
|
|
$("#" + elId).datepicker(
|
|
'option', 'maxDate', new Date(year, month, day)
|
|
);
|
|
} else {
|
|
let time = selectedDate.split("-");
|
|
let year = time[0];
|
|
let month = time[1] - 1;
|
|
let day = time[2];
|
|
$("#" + elId).datepicker(
|
|
'option', 'minDate', new Date(year, month, day)
|
|
);
|
|
}
|
|
}
|
|
|
|
function reloadtrade() {
|
|
//重新加载
|
|
SearchClick();
|
|
$('#modal-edittrade').modal('hide');
|
|
}
|
|
|
|
function showDownload(cellvalue, options, rowObject) {
|
|
var html = "";
|
|
if (rowObject.ContractDocUrl) {
|
|
html += "<input type=\"button\" class=\"wentiEdit\" title='下载交易确认书' onclick=\"DownLoadDoc('{0}')\" value=\"{1}\" />"
|
|
.template(rowObject.ContractDocUrl, "下载");
|
|
} else {
|
|
html += "<input type=\"button\" class=\"wentiEdit\" title='交易确认书未生成或未找到制定确认书文件' readonly=\"true\" value=\"{1}\" />"
|
|
.template(rowObject.ContractDocUrl, "下载");
|
|
}
|
|
return html;
|
|
}
|
|
|
|
function gJGenerateConfirmBook(ids, isWait, hasGeneratedConfirmBook) {
|
|
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
//if (isWait) {
|
|
// if (!confirm("用印正在等待中重新生成将中断用印并重新进行自动用印(如有),是否确认操作?")) {
|
|
// return;
|
|
// }
|
|
//}
|
|
if (!confirm("重新生成将覆盖已有的交易确认书并重新进行自动用印(如有),是否确认操作?")) {
|
|
return;
|
|
}
|
|
}
|
|
if (hasGeneratedConfirmBook == "True") {
|
|
if (!page.IsAutoSealAndUploadFiles) {
|
|
if (!confirm("确认覆盖已有的交易确认书?")) {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
var tradeIds = [];
|
|
if (ids) {
|
|
tradeIds = ids
|
|
} else {
|
|
//获取选中项的jqGrid对象的tradeIds
|
|
var jgrid = jQuery('#listGrid');
|
|
var rowIds = jgrid.jqGrid('getGridParam', 'selarrrow');
|
|
|
|
rowIds.forEach((v, i, arr) => {
|
|
var rowId = v;
|
|
var data = jgrid.jqGrid('getRowData', rowId);
|
|
var idArray = data.tradeIds.split(",");
|
|
tradeIds.push(idArray);
|
|
});
|
|
}
|
|
if (tradeIds.length === 0) {
|
|
main.message("请选择交易");
|
|
return;
|
|
}
|
|
var templateHtml = "";
|
|
if (page.SelectConfirmationBookTemplate) {
|
|
var currentTemplate = "";
|
|
var postData = {
|
|
key: "交易确认书"
|
|
};
|
|
if (tradeIds.length === 1) {
|
|
postData.tradeId = tradeIds[0];
|
|
main.post("/trade/GetTradeMeta", postData, { waitMe: false, async: false }).done(function (res) {
|
|
currentTemplate = res;
|
|
});
|
|
}
|
|
|
|
templateHtml = '<div class="form-group">' +
|
|
'<label class="col-sm-4 control-label">选择模板</label>' +
|
|
'<select style="width: 145px; margin-left: 14px;" data-placeholder="请选择 确认书模板" name="templateName">' +
|
|
'<option ' +
|
|
(currentTemplate === "" ? "selected" : "") +
|
|
' value="">默认</option>';
|
|
if (page.templateNames !== null) {
|
|
page.templateNames.forEach((t, i, arr) => {
|
|
templateHtml += '<option ' +
|
|
(currentTemplate !== "" && currentTemplate === t ? "selected" : "") +
|
|
' value="{0}">{0}</option>'.template(t);
|
|
});
|
|
|
|
}
|
|
templateHtml += '</select>' +
|
|
'</div>';
|
|
}
|
|
|
|
var htmlContent = '<form class="form-horizontal" role="form" style="padding:15px 12px 5px">' +
|
|
'<div class="form-group">' +
|
|
'<label class="col-sm-4 control-label">文档类型</label>' +
|
|
'<div class="btn-group col-sm-8" data-toggle="buttons">' +
|
|
'<label class="btn btn-sm btn-primary" style="border:none"><input type="radio" checked name="docType" value="DOCX"> DOC</label>' +
|
|
'<label class="btn btn-sm btn-primary active" style="border:none"><input type="radio" name="docType" value="PDF"> PDF</label>' +
|
|
'</div>' +
|
|
'</div>' +
|
|
templateHtml +
|
|
'</form>';
|
|
|
|
main.open2("生成交易确认书",
|
|
htmlContent,
|
|
{
|
|
area: ["300px", "200px"],
|
|
btn: ['生成', '取消'],
|
|
yes: function (index, layero) {
|
|
var docType = $('input[name="docType"]:checked').val();
|
|
if (page.SelectConfirmationBookTemplate) {
|
|
postData.value = $('select[name="templateName"]').val();
|
|
if (_.trim(postData.value)) {
|
|
tradeIds.forEach((v, i, arr) => {
|
|
postData.tradeId = v;
|
|
main.post("/trade/SetTradeMeta", postData, { waitMe: false, async: false });
|
|
});
|
|
}
|
|
}
|
|
var confirmBookPostData = { tradeIds: tradeIds, docType: docType, startDate: $("#DateFromOpenDate").val(), endDate: $("#DateToOpenDate").val() };
|
|
|
|
//if (page.IsAutoSealAndUploadFiles) {
|
|
// confirmBookPostData.SealResults = $("#SealResults").val();
|
|
// //confirmBookPostData.SealDateStart = $("#DateFromSealDate").val();
|
|
// //confirmBookPostData.SealDateEnd = $("#DateToSealDate").val();
|
|
//}
|
|
|
|
main.post("/TradeConfirmBook/GJGenerateConfirmBook/", confirmBookPostData)
|
|
.done(function (resp) {
|
|
var res = resp.obj;
|
|
//for (let index = 0; index < resp.obj.length; index++) {
|
|
// if (!isExistFile(res[index])) {
|
|
// res[index] += "x";
|
|
// }
|
|
//}
|
|
if (resp.success) {
|
|
main.downloadFiles(res);
|
|
} else {
|
|
main.alert(resp.msg.replace("\r\n", "<br/>"));
|
|
//if (resp.obj) {
|
|
// main.downloadFiles(res);
|
|
//}
|
|
}
|
|
window.reloadtrade();
|
|
window.layer.closeAll();
|
|
});
|
|
},
|
|
cancel: function (index, layero) {
|
|
parent.layer.closeAll();
|
|
},
|
|
success: function (layero, index) {
|
|
$(".btn-group").on("click", ".btn", function (event) {
|
|
$('input[name="docType"]:checked').prop("checked", false);
|
|
$(this).children("input").prop("checked", true);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
function DownLoadDoc(res) {
|
|
|
|
if (isExistFile(res)) {
|
|
window.open(res);
|
|
} else {
|
|
res += "x";
|
|
if (isExistFile(res)) {
|
|
window.open(res);
|
|
} else {
|
|
main.confirm("文件不存在");
|
|
}
|
|
}
|
|
}
|
|
|
|
function isExistFile(url) {
|
|
var result = false;
|
|
main.post("/TradeConfirmBook/ExistFile", { filePath: url }, { async: false }).done(function (res) {
|
|
if (res && res.obj) {
|
|
result = true;
|
|
}
|
|
});
|
|
return result;
|
|
}
|
|
|
|
function sentMail(contractCode) {
|
|
main.post("/swaptrade2/SendConfimEmail?contractCode=" + contractCode).done(function (res) {
|
|
if (res.success) {
|
|
|
|
SearchClick(true);
|
|
}
|
|
});
|
|
}
|
|
|
|
function BatchCreateContracts() {
|
|
var jgrid = jQuery('#listGrid');
|
|
var tradeIds = main.GetGridIds(jgrid);
|
|
if (tradeIds.length == 0) {
|
|
main.alert("请至少选择一笔交易"); return;
|
|
}
|
|
main.confirm("确认为所勾选的交易生成交易确认书?", function () {
|
|
gJGenerateConfirmBook();
|
|
});
|
|
}
|
|
|
|
//批量下载交易确认书
|
|
function BatchDownLoadDoc() {
|
|
var startDate = $("#DateFromOpenDate").val();
|
|
var endDate = $("#DateToOpenDate").val();
|
|
var clientIds = $("#ClientId").val();
|
|
|
|
|
|
var contractCodes = [];
|
|
var jgrid = jQuery('#listGrid');
|
|
var rowIds = jgrid.jqGrid('getGridParam','selarrrow');
|
|
rowIds.forEach((v, i, arr) => {
|
|
var rowId = v;
|
|
var data = jgrid.jqGrid('getRowData', rowId);
|
|
contractCodes.push(data.ContractCode);
|
|
})
|
|
|
|
|
|
var tip = "下载" + startDate + "至" + endDate + "的交易确认书";
|
|
if (contractCodes) { tip = "下载所有已勾选的交易确认书"; }
|
|
|
|
var htmlContent = '<form class="form-horizontal" role="form" style="padding:15px 12px 5px">' +
|
|
'<div class="form-group">' +
|
|
'<label style="padding:10px 12px 10px">' + tip + '</label><br />' +
|
|
'<label class="col-sm-5 control-label">文档类型</label>' +
|
|
'<label class="btn btn-sm btn-primary" style="border:none"><input type="checkbox" checked name="docType" value="DOC"> DOC</label>' +
|
|
'<label class="btn btn-sm btn-primary" style="border:none"><input type="checkbox" checked name="docType" value="PDF"> PDF</label>';
|
|
if (page.IsZheQi) {
|
|
htmlContent += '<br/><label class="col-sm-5 control-label">下载用印文件</label>' +
|
|
'<select id="Seal" style="margin-top:5px;"><option>是</option><option>否</option></select>';
|
|
}
|
|
|
|
main.open2("批量下载交易确认书",
|
|
htmlContent + '</div></form>',
|
|
{
|
|
area: ["400px", "250px"],
|
|
btn: ['下载', '取消'],
|
|
yes: function (index, layero) {
|
|
var docpdf = [];
|
|
$('input[name="docType"]:checked').each(function (i) {
|
|
docpdf.push($(this).val())
|
|
})
|
|
|
|
var isSeal = $("#Seal").val() == '是' ? true : false;
|
|
var confirmBookPostData = { TradeDateStart: startDate, TradeDateEnd: endDate, ClientIds: clientIds, TradeIds: null, TradeCashIds: null,contractCodes : contractCodes, DocType: "交易确认书", docpdf: docpdf, IsSeal: isSeal };
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
confirmBookPostData.SealResults = $("#SealResults").val();
|
|
//confirmBookPostData.SealDateStart = $("#DateFromSealDate").val();
|
|
//confirmBookPostData.SealDateEnd = $("#DateToSealDate").val();
|
|
}
|
|
openWindowWithPost("/trade/BatchDownLoadDoc/", confirmBookPostData);
|
|
parent.layer.closeAll();
|
|
},
|
|
cancel: function (index, layero) {
|
|
parent.layer.closeAll();
|
|
},
|
|
success: function (layero, index) {
|
|
$(".btn-group").on("click", ".btn", function (event) {
|
|
$('input[name="docType"]:checked').prop("checked", false);
|
|
$(this).children("input").prop("checked", true);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
function SendEmailHub() {
|
|
// 创建SignalR连接并连接到服务器上的Hub
|
|
var connection = new signalR.HubConnectionBuilder()
|
|
.withUrl('/tradeconfirm/sendemailhub')
|
|
.withAutomaticReconnect()
|
|
.build();
|
|
connection.start()
|
|
.then(function () {
|
|
$("#batchSendEmail").click(function () {
|
|
var jgrid = jQuery('#listGrid');
|
|
var rowIds = jgrid.jqGrid('getGridParam', 'selarrrow');
|
|
if (rowIds.length == 0) {
|
|
main.alert("请至少选择一笔交易"); return;
|
|
}
|
|
var contractCodes = [];
|
|
rowIds.forEach((v, i, arr) => {
|
|
var rowId = v;
|
|
var data = jgrid.jqGrid('getRowData', rowId);
|
|
contractCodes.push(data.ContractCode);
|
|
})
|
|
|
|
var req = {
|
|
contractCodes: contractCodes,
|
|
}
|
|
connection.invoke('StartProcessing', JSON.stringify(req));
|
|
main.waitMe(true);
|
|
});
|
|
}).catch(function (error) {
|
|
console.error(error);
|
|
});;
|
|
// 监听服务器发送的消息。
|
|
connection.on('UpdateProgress', function (msg) {
|
|
if (msg != null && msg != '') {
|
|
let jsonObject = JSON.parse(msg);
|
|
$("#email_result" + jsonObject.tradeId).text(jsonObject.send_email_result);
|
|
}
|
|
});
|
|
// 监听服务器发送的异常消息。
|
|
connection.on('ExceptionMessage', function (msg) {
|
|
if (msg.indexOf("正在发送邮件") < 0) {
|
|
main.waitMe(false);
|
|
SearchClick(true);
|
|
}
|
|
main.alert(msg);
|
|
});
|
|
// 监听服务器发送的完成消息。
|
|
connection.on('ProcessCompleted', function () {
|
|
main.alert("邮件发送处理完毕");
|
|
main.waitMe(false);
|
|
SearchClick(true);
|
|
});
|
|
// 监听连接关闭,启动重连
|
|
connection.onclose(async (error) => {
|
|
console.log("连接断开");
|
|
// 等待3秒后尝试重新连接
|
|
setTimeout(async () => {
|
|
try {
|
|
await connection.start();
|
|
console.log("已重新连接");
|
|
} catch (err) {
|
|
console.error("重新连接失败: ", err);
|
|
}
|
|
}, 3000); // 3秒
|
|
});
|
|
}
|
|
function SendOAHub() {
|
|
// 创建SignalR连接并连接到服务器上的Hub
|
|
var connection = new signalR.HubConnectionBuilder()
|
|
.withUrl('/tradeconfirm/sendoahub')
|
|
.withAutomaticReconnect()
|
|
.build();
|
|
connection.start()
|
|
.then(function () {
|
|
$("#batchSendOA").click(function () {
|
|
var jgrid = jQuery('#listGrid');
|
|
var rowIds = jgrid.jqGrid('getGridParam', 'selarrrow');
|
|
if (rowIds.length == 0) {
|
|
main.alert("请至少选择一笔交易"); return;
|
|
}
|
|
|
|
// 检查选中的行中是否有无确认书的情况
|
|
var hasNoConfirmBook = false;
|
|
var hasOAStatus = false;
|
|
var ids = [];
|
|
var contractCodes = [];
|
|
|
|
rowIds.forEach((v, i, arr) => {
|
|
var rowId = v;
|
|
var data = jgrid.jqGrid('getRowData', rowId);
|
|
if (data.id) {
|
|
ids.push(data.id);
|
|
contractCodes.push(data.ContractCode);
|
|
|
|
// 检查是否有无确认书的情况
|
|
if (!data.ContractCode) {
|
|
hasNoConfirmBook = true;
|
|
}
|
|
|
|
// 检查是否有已发送OA的情况
|
|
if (data.OAStatus && data.OAStatus !== "") {
|
|
hasOAStatus = true;
|
|
}
|
|
}
|
|
});
|
|
|
|
// 根据不同情况显示不同提示
|
|
if (hasNoConfirmBook) {
|
|
main.confirm("选中的交易中有无确认书附件的情况,确定提交OA吗?", function() {
|
|
batchSubmitOA(connection, ids);
|
|
});
|
|
} else if (hasOAStatus) {
|
|
main.confirm("选中的交易中有已经提交过OA的情况,确定再次提交新的OA吗?", function() {
|
|
batchSubmitOA(connection, ids);
|
|
});
|
|
} else {
|
|
// 有确认书且OA状态为未发送过:无提示,直接在OA中起草内容
|
|
batchSubmitOA(connection, ids);
|
|
}
|
|
});
|
|
|
|
// 批量提交OA的函数
|
|
function batchSubmitOA(connection, ids) {
|
|
var req = {
|
|
ids: ids,
|
|
}
|
|
connection.invoke('StartProcessing', JSON.stringify(req));
|
|
main.waitMe(true);
|
|
}
|
|
}).catch(function (error) {
|
|
console.error(error);
|
|
});
|
|
// 监听服务器发送的消息。
|
|
connection.on('UpdateProgress', function (msg) {
|
|
if (msg != null && msg != '') {
|
|
let jsonObject = JSON.parse(msg);
|
|
SearchClick(true); // 刷新列表
|
|
}
|
|
});
|
|
// 监听服务器发送的异常消息。
|
|
connection.on('ExceptionMessage', function (msg) {
|
|
if (msg.indexOf("正在发送OA") < 0) {
|
|
main.waitMe(false);
|
|
SearchClick(true);
|
|
}
|
|
main.alert(msg);
|
|
});
|
|
// 监听服务器发送的完成消息。
|
|
connection.on('ProcessCompleted', function () {
|
|
main.alert("OA发送处理完毕");
|
|
main.waitMe(false);
|
|
SearchClick(true);
|
|
});
|
|
// 监听连接关闭,启动重连
|
|
connection.onclose(async (error) => {
|
|
console.log("连接断开");
|
|
// 等待3秒后尝试重新连接
|
|
setTimeout(async () => {
|
|
try {
|
|
await connection.start();
|
|
console.log("已重新连接");
|
|
} catch (err) {
|
|
console.error("重新连接失败: ", err);
|
|
}
|
|
}, 3000); // 3秒
|
|
});
|
|
}
|
|
|
|
// 单个发送OA函数
|
|
function sendOA(id) {
|
|
// 获取当前行数据
|
|
var jgrid = jQuery('#listGrid');
|
|
var rowData = jgrid.jqGrid('getRowData', id);
|
|
|
|
if (!rowData) return;
|
|
|
|
var tradeIdArray = rowData.tradeIds ? rowData.tradeIds.split(",") : [];
|
|
if (tradeIdArray.length === 0) return;
|
|
|
|
// 根据不同情况显示不同提示
|
|
if (!rowData.ContractCode) {
|
|
// 无确认书:提示用户
|
|
main.confirm("目前无确认书附件,确定提交OA吗?", function() {
|
|
submitOA(id);
|
|
});
|
|
} else if (!rowData.OAStatus || rowData.OAStatus === "") {
|
|
// 有确认书,OA状态为未发送过:无提示,直接在OA中起草内容
|
|
submitOA(id);
|
|
} else {
|
|
// OA状态已经有值:提示用户是否再次提交
|
|
main.confirm("已经提交过OA,确定再次提交一笔新的OA吗?", function() {
|
|
submitOA(id);
|
|
});
|
|
}
|
|
}
|
|
|
|
// 提交OA请求
|
|
function submitOA(id) {
|
|
var req = {
|
|
id: id
|
|
};
|
|
main.post("/TradeConfirmBook/SendOA", req).done(function (res) {
|
|
SearchClick(true);
|
|
}).fail(function (xhr, status, error) {
|
|
SearchClick(true);
|
|
});
|
|
}
|
|
function openWindowWithPost(url, data) {
|
|
var form = document.createElement("form");
|
|
form.target = "_blank";
|
|
form.method = "POST";
|
|
form.action = url;
|
|
form.style.display = "none";
|
|
|
|
for (var key in data) {
|
|
if (data[key] instanceof Array) {
|
|
if (data[key].length === 0) {
|
|
var input = document.createElement("input");
|
|
input.type = "hidden";
|
|
input.name = key;
|
|
input.value = null;
|
|
form.appendChild(input);
|
|
}
|
|
else {
|
|
data[key].forEach((item, index, array) => {
|
|
var input = document.createElement("input");
|
|
input.type = "hidden";
|
|
input.name = key;
|
|
input.value = data[key][index];
|
|
form.appendChild(input);
|
|
});
|
|
}
|
|
}
|
|
else {
|
|
var input1 = document.createElement("input");
|
|
input1.type = "hidden";
|
|
input1.name = key;
|
|
input1.value = data[key];
|
|
form.appendChild(input1);
|
|
}
|
|
}
|
|
|
|
document.body.appendChild(form);
|
|
form.submit();
|
|
document.body.removeChild(form);
|
|
}
|