Files
沃巴蒂 ff22ed3a8b feat(deepdata): 引入修改密码、文件预览组件与清洗算子增强,deepflow 改名为 deep-flow
本次同步 09-12 至 09-28 的代码变更,主要内容:

新增功能
- 修改密码:后端新增 ChangePasswordRequest DTO 与UserController/UserService
  对应接口,前端新增 ChangePasswordDialog 并在 Header 接入入口
- 文件预览组件重构:file-preview 目录拆分出 VideoPreview(支持 blobUrl 直传)、
  ImagePreview、AudioPreview,index.tsx 统一调度各类型预览器
- 新增 my_ops 算子模块:markitdown_parser、mineru_pdf_parser、text_quality_evaluator
- 新增 tools/minio-file-server MinIO 文件服务

功能增强
- 数据清洗:cleaning_task_service/scheduler/routes 重构,
  data_juicer_executor 与 wrapper 增强,OperatorTable/LogsTable/TaskDetail 同步调整
- 数据标注:annotation sync.py、project.py 接口与schema 更新
- 数据采集、算子市场、首页与菜单路由相关页面调整
- DataJuicer 算子接入(useOperatorOperations、dj_ops_schema)

结构调整
- deepflow/ 更名为 deep-flow/(419 个文件重命名)
- 新增 helm 部署编排、GitHub Actions 之外的自建镜像构建脚本

未纳入本次提交
- scripts-backup/、runtime/python-executor-backup/、components_backup/(备份目录)
- *.backup*、__pycache__ 产物
- zh_core_web_sm-3.8.0-py3-none-any.whl(46MB 构建产物)
- DataX/(内嵌独立仓库,远程亦未收录其源码)
2026-10-03 22:44:56 +08:00

301 lines
10 KiB
JavaScript

/* [2,717,212] published at 2022-04-08 18:05:08 */
//document.getElementById("PublicRelation10").innerHTML = "";
;(function(win, doc) {
(function(con) {
var methods = ['error', 'info', 'log', 'warn'],func;
for (var i = methods.length - 1; i >= 0; i--) {
func = methods[i];
con[func] = con[func] || function(){};
}
}(win.console = win.console || {}));
console = win.console;
var hasTouch = typeof(window.ontouchstart) === 'undefined';
var clickType = hasTouch ? 'click' : 'touchstart';
var hasClass = function(el, clz) {
if (!el) {
return false;
}
return el.className.match(new RegExp('(\\s|^)' + clz + '(\\s|$)'));
};
var addClass = function(el, clz) {
if (!hasClass(el, clz)) {
el.className = el.className.replace(/(^\s*)|(\s*$)/g, '') + ' ' + clz;
}
};
var removeClass = function(el, clz) {
if (hasClass(el, clz)) {
var reg = new RegExp('(\\s|^)' + clz + '(\\s|$)');
el.className = el.className.replace(reg, ' ');
}
};
var byAttr = function(node, attname, attvalue) {
var match = [];
var item;
var args = [];
for (var i = 0, len = node.childNodes.length; i < len; i++) {
item = node.childNodes[i];
if (item.nodeType === 1) {
if (attvalue !== '*') {
if (item.getAttribute(attname) === attvalue) {
match.push(item);
}
} else {
if (item.getAttribute(attname) !== '') {
match.push(item);
}
} if (item.childNodes.length > 0) {
args = Array.apply(null, arguments);
args[0] = item;
match = match.concat(arguments.callee.apply(null, args));
}
}
}
return match;
};
var getDom = function(wrap, type) {
var nodes, dom;
nodes = byAttr(wrap, type, '*');
dom = {
__wrap__: wrap
};
for (var i = 0, len = nodes.length; i < len; i++) {
var j = nodes[i].getAttribute(type);
if (j) {
dom[j] || (dom[j] = nodes[i]);
}
}
return dom;
};
var contains = function(a, b) {
try {
return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16);
} catch (e) {
return false;
}
};
var addEvent = (function() {
var hover = function(e, fun) {
var t = e.relatedTarget,
t2 = e.target;
if (this == t2 && t && !(this.comparedocPosition && this.comparedocPosition(t) == 20)) {
fun.call(this);
}
t = t2 = null;
};
var add;
if (win.addEventListener) {
add = function(ele, type, fn) {
if ('on' + type in ele) {
ele.addEventListener(type, fn, false);
} else {
if (type === 'mouseenter') {
ele.addEventListener('mouseover', function(e) {
hover.call(this, e, fn);
}, false);
} else if (type === 'mouseleave') {
ele.addEventListener('mouseout', function(e) {
hover.call(this, e, fn);
}, false);
} else {
ele.addEventListener(type, fn, false);
}
}
};
} else {
add = function(ele, type, fn) {
ele.attachEvent('on' + type, fn);
};
}
return add;
})();
var DropDown = (function() {
var navClz = 'sina-top-bar-nav';
var showClz = navClz + '-show';
var timerId = null;
var show = function() {
clearTimeout(timerId);
addClass(dom.nav, showClz);
};
var hide = function() {
clearTimeout(timerId);
timerId = setTimeout(function() {
removeClass(dom.nav, showClz);
}, 300);
};
return {
init: function() {
addEvent(dom.moreLnk, 'mouseenter', show);
addEvent(dom.moreLnk, 'mouseleave', hide);
addEvent(dom.guideLnk, 'mouseenter', show);
addEvent(dom.guideLnk, 'mouseleave', hide);
addEvent(dom.sub, 'mouseenter', show);
addEvent(dom.sub, 'mouseleave', hide);
addEvent(dom.moreLnk, clickType, show);
addEvent(dom.guideLnk, clickType, show);
addEvent(doc.body, clickType, function(e) {
e = e || win.event;
var target = e.target || e.srcElement;
if (!contains(dom.nav, target)) {
removeClass(dom.nav, showClz);
}
});
},
show: show,
hide: hide
};
})();
var ScrollFix = (function() {
var d = doc.documentElement;
var b = doc.body;
var wrapClz = 'sina-top-bar-wrap';
var fixedClz = wrapClz + '-fixed';
var addSudaClick = function(key){
try{
wrap.setAttribute('data-sudaclick',key);
}catch(e){}
};
var fix = function() {
addClass(wrap, fixedClz);
addSudaClick('top_channel_2');
};
var unfix = function() {
removeClass(wrap, fixedClz);
addSudaClick('top_channel_1');
};
var toggle = function() {
if (d.scrollTop + b.scrollTop > 100) {
fix();
} else {
unfix();
}
};
return {
init: function() {
addEvent(win, 'scroll', toggle);
addSudaClick('top_channel_1');
}
};
})();
var wrap = doc.getElementById('SI_TopBar'),
dom,
inited = false;
var TopBar = {
init: function(w) {
if (inited) {
return;
}
wrap = w;
dom = getDom(wrap, 'top-node-type');
DropDown.init();
// ScrollFix.init();
inited = true;
},
getDom: function() {
return dom;
},
hasTouch: hasTouch,
clickType: clickType,
showSub: DropDown.show,
hideSub: DropDown.hide,
showMain: ScrollFix.fix,
hideMain: ScrollFix.unfix
};
if (wrap && wrap.getAttribute('top-data') === 'auto') {
TopBar.init(wrap);
}
win.__SinaTopBar__ = TopBar;
})(window, document);
(function(win) {
var isFn = function(fn, data) {
if (fn && typeof fn === 'function') {
fn(data);
}
};
var UserPanel,
wrap = document.getElementById('SI_User'),
bar = document.getElementById('SI_TopBar'),
TopBar = win.__SinaTopBar__,
LoginLayer,
inited = false,
timerId = null,
tip = null,
User = {
init: function(w, config) {
if (inited) {
return;
}
inited = true;
wrap = w;
UserPanel = win.SINA_USER_PANEL;
UserPanel = UserPanel.set("container", {
'node' : wrap
});
UserPanel = UserPanel.set('extra', {
'css' : '//i.sso.sina.com.cn/css/outlogin/v1/outlogin_skin_reversion.css'
});
UserPanel = UserPanel.set('outLoginLayer', {
'ready' : function() {
LoginLayer = win.SINA_OUTLOGIN_LAYER;
if (LoginLayer) {
LoginLayer.set('sso', {
entry: config.entry || 'account'
}).set('styles', {
// 'margin-top': '0px',
// 'z-index': '10001'
}).register('login_success', function(info) {
isFn(config.login_success, info);
LoginLayer.getWeiboInfo({
timeout: 15e3,
onSuccess: function(rs) {
isFn(config.getWeiboInfo, rs);
},
onFailure: function(rs) {}
});
}).register('logout_success', function(info) {
isFn(config.logout_success, info);
}).register('layer_hide',function(){
User.hideTip();
}).init();
}
}
});
UserPanel.init();
},
fireLoginSuccess: function() {
LoginLayer && LoginLayer.listener.fire('login_success');
},
fireLogoutSuccess: function() {
LoginLayer && LoginLayer.listener.fire('logout_success');
},
showTip: function(html){
LoginLayer = win.SINA_OUTLOGIN_LAYER;
if(!tip){
tip = document.createElement('div');
tip.className = 'sina-top-bar-user-tip';
LoginLayer.nodes.box.insertBefore(tip, LoginLayer.nodes.box.firstChild);
}
if(html){
tip.innerHTML = html;
tip.style.display = 'block';
}
},
hideTip:function(){
if(tip){
tip.style.display = 'none';
}
}
};
if (wrap && wrap.getAttribute('top-data') === 'auto') {
timerId = setInterval(function() {
if (UserPanel) {
User.init(wrap);
clearInterval(timerId);
}
}, 50);
}
win.__SinaTopBar__.user = User;
})(window);