Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/trade/tradeConfirmBookListByClient.js
T

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);
}