export default async function initCloudrainSow() { function debounce(fn, delay) { let timer; return (...args) => { // 判断定时器是否存在,清除定时器 if (timer) { clearTimeout(timer); } // 重新调用setTimeout timer = setTimeout(() => { fn.apply(this, args); }, delay); }; } function logScroll(version_name) { let container = document.querySelector(`#log${version_name}`); console.log(container); let scrollTop = container.scrollTop; let scrollHeight = container.scrollHeight; let clientHeight = container.clientHeight; let scrollLeft = container.scrollLeft; if ( (parseInt(scrollTop) + clientHeight == scrollHeight || parseInt(scrollTop) + clientHeight + 1 == scrollHeight || parseInt(scrollTop) + clientHeight - 1 == scrollHeight) && scrollLeft === 0 ) { let end_line = $(`#log${version_name} input[name=end_line]`).val(); $.get( `/api/v1/repos/${userName}/${repoPath}/modelarts/inference-job/${jobID}/log?version_name=${version_name}&base_line=${end_line}&lines=50&order=desc`, (data) => { if (data.Lines == 0) { $(`.message${version_name} #header`).text("您已翻阅至日志底部"); $(`.message${version_name}`).css("display", "block"); setTimeout(function () { $(`.message${version_name}`).css("display", "none"); }, 1000); } else { if (end_line === data.EndLine) { return; } else { $(`#log${version_name} input[name=end_line]`).val(data.EndLine); $(`#log${version_name}`).append("
" + data.Content);
}
}
}
).fail(function (err) {
console.log(err);
});
}
if (scrollTop == 0 && scrollLeft == 0) {
let start_line = $(`#log${version_name} input[name=start_line]`).val();
$.get(
`/api/v1/repos/${userName}/${repoPath}/modelarts/inference-job/${jobID}/log?version_name=${version_name}&base_line=${start_line}&lines=50&order=asc`,
(data) => {
if (data.Lines == 0) {
$(`.message${version_name} #header`).text("您已翻阅至日志顶部");
$(`.message${version_name}`).css("display", "block");
setTimeout(function () {
$(`.message${version_name}`).css("display", "none");
}, 1000);
} else {
$(`#log${version_name} input[name=start_line]`).val(data.StartLine); //如果变动就改变所对应的值
$(`#log${version_name}`).prepend("" + data.Content);
}
}
).fail(function (err) {
console.log(err);
});
}
}
const fn = debounce(logScroll, 500);
$(".log-scroll").scroll(function () {
let version_name = $(this).data("version");
fn(version_name);
});
function scrollAnimation(dom, currentY, targetY, currentX) {
let needScrollTop = targetY - currentY;
let _currentY = currentY;
setTimeout(() => {
// 一次调用滑动帧数,每次调用会不一样
//取总距离的十分之一
const dist = Math.ceil(needScrollTop / 10);
_currentY += dist;
//移动一个十分之一
dom.scrollTo(currentX || 0, _currentY, "smooth");
// 如果移动幅度小于十个像素,直接移动,否则递归调用,实现动画效果
if (needScrollTop > 10 || needScrollTop < -10) {
scrollAnimation(dom, _currentY, targetY);
} else {
dom.scrollTo(0, targetY, "smooth");
}
}, 1);
}
$(".log_top").click(function () {
// let logContentDom = document.querySelector('.log')
// if(!logContentDom)
// return
// let version_name = $('.log_top').data('version')
let version_name = $(this).data("version");
let logContentDom = document.querySelector(`#log${version_name}`);
$(`#log_file${version_name}`).siblings("pre").remove();
$.get(
`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=&lines=50&order=asc`,
(data) => {
$(`#log${version_name} input[name=end_line]`).val(data.EndLine); //如果变动就改变所对应的值
$(`#log${version_name} input[name=start_line]`).val(data.StartLine);
$(`#log${version_name}`).prepend("" + data.Content);
$(`.message${version_name} #header`).text("您已翻阅至日志顶部");
$(`.message${version_name}`).css("display", "block");
setTimeout(function () {
$(`.message${version_name}`).css("display", "none");
}, 1000);
scrollAnimation(logContentDom, logContentDom.scrollTop, 0);
}
);
});
$(".log_bottom").click(function (e) {
let version_name = $(this).data("version");
let logContentDom = document.querySelector(`#log${version_name}`);
$(`#log_file${version_name}`).siblings("pre").remove();
$.get(
`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=&lines=50&order=desc`,
(data) => {
$(`#log${version_name} input[name=end_line]`).val(data.EndLine); //如果变动就改变所对应的值
$(`#log${version_name} input[name=start_line]`).val(data.StartLine);
$(`#log${version_name}`).append("" + data.Content);
$.get(
`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${data.EndLine}&lines=50&order=desc`,
(data) => {
if (data.Lines == 0) {
$(`.message${version_name} #header`).text("您已翻阅至日志底部");
$(`.message${version_name}`).css("display", "block");
setTimeout(function () {
$(`.message${version_name}`).css("display", "none");
}, 1000);
} else {
if (end_line === data.EndLine) {
return;
} else {
$(`#log${version_name} input[name=end_line]`).val(data.EndLine);
$(`#log${version_name}`).append("" + data.Content);
}
}
}
).fail(function (err) {
console.log(err);
});
scrollAnimation(
logContentDom,
logContentDom.scrollTop + 1,
logContentDom.scrollHeight - logContentDom.clientHeight
);
}
);
});
//
$(".content-pad").on("click", ".load-model-file", function () {
console.log("11111111111");
let version_name = $(this).data("version");
let parents = $(this).data("parents") || "";
let filename = $(this).data("filename") || "";
let init = $(this).data("init") || "";
let path = $(this).data("path");
let url = `/api/v1/repos${path}?version_name=${version_name}&parentDir=${parents}`;
console.log(url);
$.get(url, (data) => {
$(`#dir_list${version_name}`).empty();
renderDir(path, data, version_name);
if (init === "init") {
$(`input[name=model${version_name}]`).val("");
$(`input[name=modelback${version_name}]`).val(version_name);
$(`#file_breadcrumb${version_name}`).empty();
let htmlBread = "";
if (version_name) {
htmlBread += `${version_name}`;
} else {
htmlBread += `result`;
}
htmlBread += " / ";
$(`#file_breadcrumb${version_name}`).append(htmlBread);
} else {
renderBrend(path, version_name, parents, filename, init);
}
}).fail(function (err) {
console.log(err, version_name);
});
});
function renderSize(value) {
if (null == value || value == "") {
return "0 Bytes";
}
var unitArr = new Array(
"Bytes",
"KB",
"MB",
"GB",
"TB",
"PB",
"EB",
"ZB",
"YB"
);
var index = 0;
var srcsize = parseFloat(value);
index = Math.floor(Math.log(srcsize) / Math.log(1024));
var size = srcsize / Math.pow(1024, index);
size = size.toFixed(0); //保留的小数位数
return size + unitArr[index];
}
function renderBrend(path, version_name, parents, filename, init) {
if (init == "folder") {
let htmlBrend = "";
let sectionName = $(
`#file_breadcrumb${version_name} .active.section`
).text();
let parents1 = $(`input[name=model${version_name}]`).val();
let filename1 = $(`input[name=modelback${version_name}]`).val();
if (parents1 === "") {
$(`#file_breadcrumb${version_name} .active.section`).replaceWith(
`${sectionName}`
);
} else {
$(`#file_breadcrumb${version_name} .active.section`).replaceWith(
`${sectionName}`
);
}
htmlBrend += `${filename}`;
htmlBrend += " / ";
$(`#file_breadcrumb${version_name}`).append(htmlBrend);
$(`input[name=model${version_name}]`).val(parents);
$(`input[name=modelback${version_name}]`).val(filename);
} else {
$(`input[name=model${version_name}]`).val(parents);
$(`input[name=modelback${version_name}]`).val(filename);
$(`#file_breadcrumb${version_name} a.section:contains(${filename})`)
.nextAll()
.remove();
$(
`#file_breadcrumb${version_name} a.section:contains(${filename})`
).replaceWith(`${filename}`);
$(
`#file_breadcrumb${version_name} div.section:contains(${filename})`
).append(" / ");
}
}
function renderDir(path, data, version_name) {
let html = "";
html += "";
html += "";
html += "";
html += "";
html += "";
html += "";
// html += ""
for (let i = 0; i < data.Dirs.length; i++) {
let dirs_size = renderSize(data.Dirs[i].Size);
html += "";
html += "";
html += "";
html += "";
html += "";
if (data.Dirs[i].IsDir) {
html += ``;
html +=
"" +
data.Dirs[i].FileName +
"";
} else {
if (downlaodFlag) {
html += ``;
} else {
html += ``;
}
html +=
"" +
data.Dirs[i].FileName +
"";
}
html += "";
html += "";
html += " ";
html += "";
html += "";
html +=
"" + data.Dirs[i].ModTime + "";
html += " ";
html += " ";
}
html += "";
html += "
";
html += "";
html += "";
html += "";
html += "";
$(`#dir_list${version_name}`).append(html);
}
}