const inputFormatDouble2 = Object.freeze({ precision: 2, append: '' }); function deletetrade(id) { //无效化 main.confirm(page.ConfirmInfo, function () { $.ajax({ type: "Post", url: "/trade/InValidTrade", data: { id: id, d: new Date() }, success: function (data) { alert(data.msg); if (data.success) { try { window.parent.reloadtrade(); } catch (e) { // } parent.parent.layer.closeAll(); } }, error: function (msg) { alert("error:" + msg); } }); }); } function editTrade(enid, tradeType) { if (tradeType === "收益互换") { window.location.href = `/swapTrade/tradeEdit/?enid=${enid}`; } else { window.location.href = `/trade/tradeEdit/?enid=${enid}`; } } function editTradeRemarkInfo(enid) { main.open("修改备注", "/trade/EditRemarkInfo?enid=" + enid, { area: ["700px", "500px"] }); } function editGroupTrade(id) { window.location.href = `/trade/tradeEditGroup?` + $.param({ id: id }, true); } function startforwardtradeView(id) { var url = "/trade/tradeview/?isFromPositionReport=true&&enid=" + id; main.open("查看交易", url); } function editTradeMaturityDate(enid) { main.confirm("是否确认到期修改?", function () { main.post("/trade/EditMaturityDate", { enid: enid }).done(function (res) { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } closetradeWindow(); }); }); } function downloadFiles(files) { if (files instanceof Array) { if (files.length <= 0) { return; } $.each(files, function (index, val) { if (val) { setTimeout(function () { window.open(val); }, 500); } }); } else if (files) { window.open(files); } } var layerIndex = -1; var confirmFunc = function (id, additionalProcessing) { var pData = { tradeids: id }; if (!main.isEmpty(additionalProcessing)) { pData.additionalProcessing = additionalProcessing; } main.post("/trade/tradeConfirm", pData).done(function (data) { if (!data.success) { main.message(data.msg); return; } if (data.obj && data.obj.proccessType === "AdditionalProcessing") { if (data.obj.TrialDataId) { var layerSetting = { type: 2, title: "提示", shadeClose: false, shade: 0.4, area: ['800px', '500px'], content: "/trade/showQuotaTrial?id=" + data.obj.TrialDataId, yes: function (index) { var obj = window["layui-layer-iframe" + index].page; if (obj.IsTF) { if (obj.Data.Remark && obj.Data.Remark.length > 0) { main.post("/trade/SaveQuotaTrial", obj.Data, { async: false }).done(function (res) { if (!res || !res.success) { main.message(res.msg); } }); layer.close(layerIndex); confirmFunc(id, "LackOfMoney"); return; } main.message("必须填写说明内容,才可以录入交易"); } else { if (obj.Data.Remark && obj.Data.Remark.length > 0) { main.post("/trade/SaveQuotaTrial", obj.Data, { async: false }).done(function (res) { if (!res || !res.success) { main.message(res.msg); } }); } layer.close(layerIndex); confirmFunc(id, "LackOfMoney"); } }, cancel: function () { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } layer.close(layerIndex); } }; if (data.obj.type === "LackOfMoney") { layerSetting.btn = [page.buttonStr, '取消']; } // 只展示“资金状况”的情况 if (data.obj.typecode === "FundStatus") { layerSetting.btn = ["确认", '取消']; } layerIndex = layer.open(layerSetting); } else { if (data.obj.message) { main.message(data.obj.message); } } return; } if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } if (page.IsGenerateAmendDoc) { if (data.obj && data.obj.generateChangeSuccess) { main.downloadFiles(data.obj.url); } } var blClose = true; if (page.NeedSendChangeEmail && data.obj && data.obj.generateChangeSuccess) { main.confirm("确认发送变更确认书?", function () { blClose = false; main.post("/trade/SendChangeConfirmEmails", { tradeids: id }).done( function (data) { if (data.success) { main.message("发送成功"); } else { main.message(data.msg); } closetradeWindow(); }); }); } if (blClose) { closetradeWindow(); } }); }; /** * 显示观察日信息 * @param {string} pageTitle 标题名 * @param {any[]} colInfos 列信息数组,数组中元素可以是字符串,也可以是{name:"列名",type:"percent"},type支持:text,number,percent * @param {string} observationInfos 观察信息字符串, */ function showObservationInfos(pageTitle, colInfos, observationInfos) { var strArr = []; observationInfos.split(';').forEach((item, index, objs) => { if (item) { strArr.push(item); } }); if (colInfos.length > strArr.length) { return main.alert("数据错误,无法展示"); } var arr = []; var typeInfos = []; var html = "
"; colInfos.forEach((item, index, objs) => { var name = ""; switch (typeof (item)) { case "object": name = item.name; typeInfos.push(item.type); break; case "string": name = item; typeInfos.push("text"); break; default: return main.alert("参数错误,无法展示"); break; } html += "{0}".template(name); arr.push(strArr[index].split(',')); }); html += "
    "; arr[0].forEach((dateItem, dateIndex, dateArr) => { html += "
  1. "; arr.forEach((item, index, objs) => { var value = arr[index][dateIndex]; switch (typeInfos[index]) { case "number": value = otcformat.fixed2(value); break; case "percent": value = otcformat.fixed2P(value); break; case "text": default: break; } html += "{0}".template(value); }); html += "
  2. "; }); html += "
"; var index = layer.open({ type: 1, title: pageTitle, closeBtn: false, shade: 0.4, area: ['450px', '500px'], content: html, btn: ['关闭'], yes: function () { layer.close(index); } }); } function confirmTrade(id) { ///批量结算 main.confirm("确定确认交易吗?如果是结构化交易类型则每条腿都会被确认", function () { confirmFunc(id); }); } function setKnockInOutStatus(id) { $('#modalKnockInOutStatusSave').modal('show'); } function terminationBackToConfirmed(enid) { main.confirm("确定提前终止放弃吗?", function () { main.post("/trade/TerminationBackToConfirmed", { enid: enid }).done(reloadData); }); } function closetradeWindow(reload) { layer.closeMe(reload ? "reloadData" : ""); } $(document).ready(function () { $(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" }); }); //ESC $(document).keyup(function (event) { switch (event.keyCode) { case 27: window.parent.layer.closeAll(); } }); function fileManagement(tradeNumber) { main.open("文件管理", "/trade/tradeFileManagement?tradeNumber=" + tradeNumber); } function contractManagement(tradeNumber) { main.open("【{0}】文件管理".template(tradeNumber), "/trade/tradeContractManagement?tradeNumber=" + tradeNumber); } function tradeOperationHistory(encryptId) { main.open("操作历史", "/trade/tradeOperationHistory?encryptId=" + encryptId); } function tradeTrialHistory(tradeId) { main.open("试算历史", "/trade/quotaTrialHistory?TradeId=" + tradeId, { area: ["1200px", "600px"] }); } function DownTradeFiles(tradeNumber) { if (tradeNumber === "") { main.message("交易编码不存在,请先在财务与报告页面生成交易确认书后再在此页面下载交易确认书"); return; } main.confirm("确定下载交易确认书?", function () { main.post("/trade/DownTradeFiles", { tradeNumber: tradeNumber }).done(function (res) { if (res.length > 0) { for (var i = 0; i < res.length; i++) { window.open(res[i]); } } }); }); } function unWind(id, tradeType, isReCheck) { if (tradeType === "商品期货") { var message = "\"" + tradeType + "\"不允许平仓操作!"; main.confirm(message, function () { }); return; } var title = "交易平仓"; if (isReCheck) title = "平仓审核提交"; //障碍期权特殊处理 敲入时状态必须不为空才为有效 敲出时状态为空为有效 if (tradeType === "障碍期权") { main.post("/trade/checkBarrierUnwind", { enid: id }).done(function (res) { if (!res.success) { main.alert(data.msg); return; } else { var srcurl = "/trade/tradeUnwind/?enid=" + id; main.open(title, srcurl, { area: ["1000px", "800px"] }); } }); } else { var srcurl = "/trade/tradeUnwind/?enid=" + id; main.open(title, srcurl, { area: ["1000px", "800px"] }); } } function unWindCustomizedTrade(id) { var title = "交易平仓"; var srcurl = "/trade/tradeCustomizedUnwind/?enid=" + id; main.open(title, srcurl, { area: ["1200px", "570px"], end: function () { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } } }); } function unWindSwapTrade(id, isswap) { var title = isswap ? "收益结算" : "交易平仓"; var srcurl = "/trade/tradeSwapUnwind/?enid=" + id + "&isswap=" + isswap; main.open(title, srcurl, { area: ["1000px", "720px"], end: function () { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } } }); } function extensionTime(id, tradeNumber) { var title = "展期信息"; var srcurl = "/trade/extensionTime/?enid=" + id + "&tradeNumber=" + tradeNumber; main.open(title, srcurl, { area: ["710px", "720px"], end: function () { reload(); } }); } //执行合约 function executionTrade(id, isReCheck, isExpired) { var srcurl = "/trade_cash/executionTradeCash/?enid=" + id + "&isexpire=" + isExpired; var title = isExpired ? "执行到期" : "执行期权"; if (isReCheck) { title = isExpired ? "到期复核" : "行权复核"; } if (isExpired) { main.post("/trade_cash/checkEodPrice/", { enid: id }).done(function (res) { main.open(title, srcurl, { area: ["1000px", "800px"] }); }); } else { main.open(title, srcurl, { area: ["1000px", "800px"] }); } } //合约到期(直接執行到期) function expireTrade(id) { var htmlContent = `
到期日期:${moment(page.Trade.ExerciseDate).format("YYYY-MM-DD")}
`; if (page.Trade.TradeType === "亚式期权") { htmlContent += `到期标的均价:${main.formatNumber(page.Trade.FinalPrice, 6)}
`; htmlContent += `${page.Trade.SettlementTypeDesc}: ${main.formatNumber(page.ClosePrice)}
`; } else { htmlContent += `${page.Trade.SettlementTypeDesc}:${main.formatNumber(page.Trade.FinalPrice)}`; } main.confirm(htmlContent, function () { main.post("/trade/tradeExpireConfirm", { enid: id, spotprice: page.ClosePrice }).done(function (res) { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } reload(); }); }, null, "确认执行合约到期?"); } function SetObservationPrice(id) { var srcurl = "/trade/setObservationPrice/?enid=" + id; main.open("设置观察价格", srcurl, { area: ["1000px", "800px"] }); } function backTradeStepped(enid) { var tip = "是否回退"; if (page.Trade.Warning) { tip = "该笔交易因除权除息已被系统修改,仅支持回退到最初确认成交状态,并需要从交易日开始重新收盘,是否继续回退?"; } main.confirm(tip, function () { main.post("/trade/backTradeStepped", { enid: enid }).done(function (res) { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } reload(); }); }); } function backGroupTradeStepped(enid) { var tip = "是否回退"; if (page.Trade.Warning) { tip = "该笔交易因除权除息已被系统修改,仅支持回退到最初确认成交状态,并需要从交易日开始重新收盘,是否继续回退?"; } main.confirm(tip, function () { main.post("/trade/backGroupTradeStepped", { enid: enid }).done(function (res) { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } reload(); }); }); } function backTrade(enid) { var tip = "是否回退"; if (page.Trade.Warning) { tip = "该笔交易发生过除权除息,是否继续回退?"; } main.confirm(tip, function () { var srcurl = "/trade/tradeBack?enid=" + enid; main.open("交易回退", srcurl, { area: ['500px', '400px'] }); }); } function RiskHandle(enid) { var srcurl = "/eod_trade_risk_manual/eod_trade_risk_manualList/?enid=" + enid; main.open("风险维护", srcurl); } //生成交易确认书 function gJGenerateConfirmBook(id, hasGeneratedConfirmBook) { if (hasGeneratedConfirmBook == "True") { if (page.IsAutoSealAndUploadFiles) { if (!confirm("重新生成将覆盖已有的交易确认书并重新进行自动用印(如有),是否确认操作?")) { return; } } else { if (!confirm("确认覆盖已有的交易确认书?")) { return; } } } var tradeIds = []; if (id) { tradeIds.push(id); } if (tradeIds.length === 0) { main.message("请选择交易"); return; } var htmlContent = '
' + '
' + '' + '
' + '' + '' + '
' + '
' + '
'; var layerId = main.open2("生成交易确认书", htmlContent, { area: ["300px", "165px"], btn: ['生成', '取消'], yes: function (index, layero) { var docType = $('input[name="docType"]:checked').val(); main.post("/TradeConfirmBook/GJGenerateConfirmBook/", { tradeIds: tradeIds, docType: docType }).done(function (resp) { if (resp.success) { window.open(resp.obj); } else { main.alert(resp.msg.replace("\r\n", "
")); } layer.close(layerId); }); }, cancel: function (index, layero) { layer.close(layerId); }, 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 toPdf(id) { main.post("/TradeConfirmBook/ToPdf/", { enid: id }).done(function (res) { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } window.open(res); reload(); }); } function reload() { main.waitMe(); window.location.reload(); } //显示组合Pv曲线 function showPvChart(id) { window.sessionStorage.removeItem("pricing_pv_line"); main.post("/pricing/GetTradesPvLine2", { enTradeId: id }).done(function (resp) { window.sessionStorage.setItem("pricing_pv_line", JSON.stringify(resp)); window.open("/Statics/html/PvChart.html"); }); } (function (global) { global.reloadData = function () { main.waitMe(); window.location.reload(); main.parentReloadData(); }; }(window)); var vueDetails = new Vue({ el: "#myModal", data: { getDetails: page.getTradeSwapDetails, payDetails: page.payTradeSwapDetails, isForGet: true, updateKey: 0 }, created: function () { }, methods: { closeModal: function () { var details = this.isForGet ? this.getDetails : this.payDetails; main.post("/trade/SaveTradeSwapDetails", { details: details }).done(function (res) { $("#exerciseDate").text(new moment(res.obj.ExerciseDate).format("YYYY-MM-DD")); $("#originalStockEqvNotional").text(otcformat.trading.StockEqvNotional(res.obj.OriginalStockEqvNotional)); }); } }, filters: { }, components: { 'vue-datepicker': FastVue.vueDatePicker(), 'vue-number-input': FastVue.vueNumberInput() } }); function chkAll_onclick(obj) { var chks = document.getElementsByName("sub"); for (var i = 0; i < chks.length; i++) { chks[i].checked = obj.checked; } } function chk_onclick(obj) { var chks = document.getElementsByName("sub"); var chkAll = document.getElementsByName("all"); if (obj.checked == false) chkAll[0].checked = false; else { var j = 1; for (var i = 0; i < chks.length; i++) { if (chks[i].checked == false) { j = 2; break; } } if (j == 1) chkAll[0].checked = true; } } $(function () { refreshEntryExit(); }); function refreshEntryExit() { var opt = { url: "/trade/entryexitListV2?tradeid=" + page.Trade.id + "&IsOnlyCloseButton=" + page.isZiJinNotShpw, data: { rid: page.id }, dataType: "Html", success: function (data) { $("#entryexitEditPopInner").html(data); } }; main.ajax(opt); } function setExcute() { var ids = []; var name = $('input[name = "sub"]'); for (var i = 0; i < name.length; i++) { if (name[i].checked) { ids.push(name[i].value); } } if (ids.length == 0) { main.message("请选中至少一条出入金信息"); return; } main.post("/trade/entryexitIsconfirm", { ids: ids }).done(function (res) { if (_.trim(res.obj)) { if (confirm(res.obj)) { main.post("/trade/excute", { ids: ids }).done(function () { window.location.href = "/trade/tradeview?enid=" + page.Trade.EncryptId; }); } } else { main.post("/trade/excute", { ids: ids }).done(function () { window.location.href = "/trade/tradeview?enid=" + page.Trade.EncryptId; }); } }); } function Addentryexit(enid, tradeid) { var url = "/Trade/entryexitEdit?enid=" + enid + "&tradeid=" + tradeid; main.open("新增资金记录", url, { area: ['600px', '75%'], end: function () { refreshEntryExit(); } }); } function Editentryexit(enid, tradeid) { var url = "/Trade/entryexitEdit?enid=" + enid + "&tradeid=" + tradeid; main.open("修改资金记录", url, { area: ['600px', '75%'], end: function () { refreshEntryExit(); } }); } function Deleentryexit(enid) { main.post("/Trade/delete", { id: enid }).done(function (res) { refreshEntryExit(); }); } function setComments(EncryptId) { vueCommentsDetails.EncryptId = EncryptId; $("#myCommentsModal").modal("show"); } function setReject() { var ids = []; var name = $('input[name = "sub"]'); for (var i = 0; i < name.length; i++) { if (name[i].checked) { ids.push(name[i].value); } } if (ids.length == 0) { main.message("请选中至少一条出入金信息"); return; } main.post("/trade/entryexitsetReject", { ids: ids }).done(function (res) { if (res.msg == "") { main.post("/trade/reject", { ids: ids }).done(function () { refreshEntryExit(); }); } }); } var vueCommentsDetails = new Vue({ el: "#myCommentsModal", data: { Comments: '', EncryptId: '' }, methods: { closeModal: function () { $('#myCommentsModal').modal('hide'); }, saveModal: function () { var data = { EncryptId: this.EncryptId, Comments: this.Comments, }; var ajaxopt = { type: "Post", url: "/entryexit/saveClientCashInOutComments", data: data, dataType: "json", success: function (data) { if (data.success) { window.parent.showmiddlemessage("保存成功"); $('#myCommentsModal').modal('hide'); vueCommentsDetails.Comments = ""; refreshEntryExit(); } else { alert(data.msg); } }, error: function (msg) { alert("error:" + msg); } } main.ajax(ajaxopt); } } }); function showStructureImport() { main.open("期权定价", "/pricing/StructureImport?EncryptId=" + page.Trade.EncryptId); } var quotaTrialResult = false; function quotaTrial(id) { layer.open({ type: 2, title: "提示", shadeClose: false, shade: 0.4, area: ['800px', '500px'], content: "/trade/quotaTrial?id=" + id, btn: ['关闭'], yes: function (index) { layer.close(index); } }); } function traderevoke(id, actionType) { var pData = { tradeids: id, actionType: actionType }; main.post("/trade/traderevoke", pData).done(function (res) { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } reload(); }); } function tradewithdraw(id) { var pData = { tradeids: id, }; main.post("/trade/tradewithdraw", pData).done(function (res) { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } reload(); }); } var knockInOutVue = new Vue({ el: '#modalKnockInOutStatusSave', data: { trade_airbag: page.Trade.trade_airbag }, created: function () { if (this.trade_airbag.KnockInOutDate != null) { this.trade_airbag.KnockInOutDate = new moment(this.trade_airbag.KnockInOutDate).format("YYYY-MM-DD"); } }, methods: { closeModal: function () { $('#modalKnockInOutStatusSave').modal('hide'); }, saveKnockInOutStatus: function () { var thisobj = this; main.post("/trade/SaveKnockInOutStatus", { trade_airbag: thisobj.trade_airbag }).done(function (resp) { $('#modalKnockInOutStatusSave').modal('hide'); main.message("设置成功"); }); } }, components: { 'vue-datepicker': FastVue.vueDatePicker() }, }); function starttradeView(id) { var srcurl = "/trade/TradeView/?enid=" + id + "&isOnlyCloseButton=true"; main.open("查看交易", srcurl, { area: ['1360px', '100%'], scrollbar: false }); } function addSwapTrade(id) { layer.open({ type: 2, title: "新增互换交易", shadeClose: false, shade: 0.4, area: ['1380px', '860px'], content: "/swapTrade/TradeEdit/?enid=0&parentTradeId=" + id }); } function setAccumulatorChange(id) { var srcurl = "/trade/AccumulatorChange/?enid=" + id; main.open("换月调整设置", srcurl, { area: ["800px", "700px"] }); } function showstructuresInfos(structures, id) { var query = { structure: structures, CalcId: id, onlyshow: true }; query = $.param(query); layer.open({ type: 2, title: "结构要素", shadeClose: false, shade: 0.4, area: ['900px', '560px'], content: "/trade/StructureList?" + query }); } var observation = { ObservationNum: 1, ObservationUnit: 'D', ObservationHolidayType: 'Following', ObservationAlignEnd: true, CouponDayInterval: 0, ObservationDates: "" }; function editObservationInfos(observationDate, id) { var startTime = _.trim(page.Trade.TradeDate); var endTime = _.trim(page.Trade.ExerciseDate); if (!startTime) { return main.alert("请输入交易日期"); } if (!endTime) { return main.alert("请输入到期日期"); } var obs = observation; obs.ObservationDates = observationDate; var query = { observationNum: obs.ObservationNum, observationUnit: obs.ObservationUnit, observationHolidayType: obs.ObservationHolidayType, startTime: startTime, endTime: endTime, alignEnd: _.toString(obs.ObservationAlignEnd) !== "false", btnId: id, couponDayInterval: obs.CouponDayInterval, tradeType: page.Trade.TradeType }; query.Comments = page.Trade.MetaDic["ObservationRemark1"]; var whith = 500; query.title1 = "固定价格"; query.title2 = "是否了结"; query.title3 = "了结价格"; query.isTitle2TrueFalse = true; query.isTitle1Percent = page.Trade.IsMoneynessOption === "是"; query.isTitle2Percent = false; query.isTitle3Percent = page.Trade.IsMoneynessOption === "是"; query = $.param(query); sessionStorage.setItem(id + "_observationdates", obs.ObservationDates); layer.open({ type: 2, title: "设置自定义观察日", shadeClose: false, shade: 0.4, area: [whith + 'px', '560px'], content: "/trade/tradeObservationDates?" + query }); } function getObservationDatesSetting(observationNum, observationUnit, observationHolidayType, observationDates, alignEnd, calcId, couponDayInterval, Comments) { if (!calcId) return; let isComments = Comments != ""; observation = { ObservationNum: observationNum, ObservationUnit: observationUnit, ObservationHolidayType: observationHolidayType, ObservationAlignEnd: alignEnd, CouponDayInterval: couponDayInterval, ObservationDates: observationDates }; var trade = page.Trade; trade.MetaDic["observationDate"] = observationDates; if (isComments || trade.MetaDic["ObservationRemark1"] != undefined) trade.MetaDic["ObservationRemark1"] = Comments; main.post("/trade/AjaxSaveTradeV2", { trade: trade }).done(function (resp) { window.location.href = "/trade/tradeview?enid=" + resp.obj.EncryptId; }); } function checkTradeGroup(tradeNumber) { main.post("/swapTrade/checkTradeGroup/", { tradeNumber: tradeNumber }).done(function (res) { main.alert(res); }); } function delaySettlement(id) { var query = { tradeids: id }; query = $.param(query); layer.open({ type: 2, title: "延期结算", shadeClose: false, shade: 0.4, area: ["450px", "350px"], content: "/SwapTrade/tradeDelaySettlement?" + query }); } function addGroupTradeCash(selId) { var arr = new Array(); arr.push(selId); OpenTradeSettle(arr); } function OpenTradeSettle(selIds) { let srcurl = "/trade/tradeSettle/?ids=" + selIds.join(','); main.open("分组了结", srcurl, { area: ['1220px', '845px'], scrollbar: false }); } //let vueBaseInfo = new Vue({ // el: "#baseInfo", // mounted() { // this.ResetTable(); // }, // methods: { // ResetTable() { // let tb = document.getElementById("baseTable"); // let trs = tb.rows; // let newtds = []; // let newtrs = []; // while(trs.length > 0) { // for (let j = 0; j < trs[0].cells.length; j++) { // if (trs[0].cells[0].innerText !== "备注" && trs[0].cells[0].innerText !== "标签") { // newtds.push(trs[0].cells[j]); // } else { // newtrs.push(trs[0]); // break; // } // } // /* if (flag) {*/ // $(trs[0]).remove(); // //} else { // // break; // //} // } // if (tb !== "undefined") { // tb.removeChild(tb.lastChild); // } // //console.log(tb); // //console.log(newtds); // //console.log(newtrs); // let newTr = document.createElement("tr"); // for (let k = 0; k < newtds.length; k++) { // if (newTr.cells.length < 4) { // if (k % 4 == 2 && newtds[k].innerText == "") continue; // if (k % 4 == 3 && newtds[k - 1].innerText == "" && newtds[k].innerText == "") continue; // } // newTr.appendChild(newtds[k]); // if (newTr.cells.length == 4) { // tb.appendChild(newTr); // newTr = document.createElement("tr"); // } // } // $(tb).append(...newtrs); // } // } //});