mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-14 21:02:49 +00:00
site
This commit is contained in:
parent
a614789baf
commit
97ce98177f
@ -38,7 +38,7 @@ class SystemController extends AbstractController
|
||||
* @apiParam {String} type
|
||||
* - get: 获取(默认)
|
||||
* - all: 获取所有(需要管理员权限)
|
||||
* - save: 保存设置(参数:['reg', 'reg_identity', 'reg_invite', 'login_code', 'password_policy', 'project_invite', 'chat_information', 'anon_message', 'auto_archived', 'archived_day', 'all_group_mute', 'all_group_autoin', 'image_compress', 'image_save_local', 'start_home', 'home_footer'])
|
||||
* - save: 保存设置(参数:['reg', 'reg_identity', 'reg_invite', 'login_code', 'password_policy', 'project_invite', 'chat_information', 'anon_message', 'auto_archived', 'archived_day', 'task_visible', 'all_group_mute', 'all_group_autoin', 'image_compress', 'image_save_local', 'start_home'])
|
||||
|
||||
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
|
||||
* @apiSuccess {String} msg 返回信息(错误描述)
|
||||
@ -65,12 +65,12 @@ class SystemController extends AbstractController
|
||||
'anon_message',
|
||||
'auto_archived',
|
||||
'archived_day',
|
||||
'task_visible',
|
||||
'all_group_mute',
|
||||
'all_group_autoin',
|
||||
'image_compress',
|
||||
'image_save_local',
|
||||
'start_home',
|
||||
'home_footer'
|
||||
])) {
|
||||
unset($all[$key]);
|
||||
}
|
||||
@ -104,6 +104,7 @@ class SystemController extends AbstractController
|
||||
$setting['anon_message'] = $setting['anon_message'] ?: 'open';
|
||||
$setting['auto_archived'] = $setting['auto_archived'] ?: 'close';
|
||||
$setting['archived_day'] = floatval($setting['archived_day']) ?: 7;
|
||||
$setting['task_visible'] = $setting['task_visible'] ?: 'close';
|
||||
$setting['all_group_mute'] = $setting['all_group_mute'] ?: 'open';
|
||||
$setting['all_group_autoin'] = $setting['all_group_autoin'] ?: 'yes';
|
||||
$setting['image_compress'] = $setting['image_compress'] ?: 'open';
|
||||
@ -909,26 +910,6 @@ class SystemController extends AbstractController
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @api {get} api/system/get/starthome 20. 启动首页设置信息
|
||||
*
|
||||
* @apiDescription 用于判断注册是否需要启动首页
|
||||
* @apiVersion 1.0.0
|
||||
* @apiGroup system
|
||||
* @apiName get__starthome
|
||||
*
|
||||
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
|
||||
* @apiSuccess {String} msg 返回信息(错误描述)
|
||||
* @apiSuccess {Object} data 返回数据
|
||||
*/
|
||||
public function get__starthome()
|
||||
{
|
||||
return Base::retSuccess('success', [
|
||||
'need_start' => Base::settingFind('system', 'start_home') == 'open',
|
||||
'home_footer' => Base::settingFind('system', 'home_footer')
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @api {get} api/system/email/check 21. 邮件发送测试(限管理员)
|
||||
*
|
||||
|
||||
1
public/site/css/common.css
vendored
1
public/site/css/common.css
vendored
@ -315,6 +315,7 @@ img {
|
||||
border: 1px solid var(--txt-theme-color);
|
||||
}
|
||||
.search-form{
|
||||
display: none;
|
||||
position: relative;
|
||||
}
|
||||
.search-input{
|
||||
|
||||
8
public/site/css/help.css
vendored
8
public/site/css/help.css
vendored
@ -40,12 +40,6 @@
|
||||
height: 82vh;
|
||||
}
|
||||
|
||||
.l-ul-item {
|
||||
padding: 9px 16px;
|
||||
cursor: pointer;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
.l-ul-item.active .txt {
|
||||
color: var(--txt-theme-color);
|
||||
}
|
||||
@ -195,4 +189,6 @@
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 9px 16px;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
13
public/site/css/log.css
vendored
13
public/site/css/log.css
vendored
@ -33,11 +33,6 @@
|
||||
.logs-l-ul{
|
||||
width: 240px;
|
||||
}
|
||||
.l-ul-item{
|
||||
padding: 9px 16px;
|
||||
cursor: pointer;
|
||||
height: 22px;
|
||||
}
|
||||
.l-ul-item.active .txt{
|
||||
color: var(--txt-theme-color);
|
||||
}
|
||||
@ -133,9 +128,11 @@
|
||||
border-top: 1px solid var(--border-color);
|
||||
}
|
||||
.log-a{
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 9px 16px;
|
||||
line-height: normal;
|
||||
}
|
||||
.logs-sticky{
|
||||
position: sticky;
|
||||
|
||||
@ -202,7 +202,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">Try Now</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">Try Now</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -75,7 +75,7 @@
|
||||
</a>
|
||||
<i class="line-1"></i>
|
||||
<span class="get-started">
|
||||
<a href="https://www.dootask.com/manage/dashboard">
|
||||
<a href="../../manage/dashboard">
|
||||
<button class="btn btn-primary" >Try Now</button>
|
||||
</a>
|
||||
</span>
|
||||
@ -132,7 +132,7 @@
|
||||
<img class="icon mb-8" src="../img/dow_window.svg" alt="Windows">
|
||||
<i class="txt-4001624 txt">Windows</i>
|
||||
</div>
|
||||
<a class="hover radius" id="winx64Link" href="https://www.dootask.com/desktop/publish/latest?platform=windows&arch=x64" target="_blank">
|
||||
<a class="hover radius" id="winx64Link" href="https://www.dootask.com/desktop/publish/latest?platform=win&arch=x64" target="_blank">
|
||||
<img class="icon mb-8" src="../img/dow_icon.svg" alt="Windows,download">
|
||||
<i class="txt-4001624 txt">Download</i>
|
||||
</a>
|
||||
@ -212,7 +212,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">Try Now</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">Try Now</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@ -318,9 +318,7 @@
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
<script src="https://cdn.bootcdn.net/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
|
||||
<script src="https://cdn.bootcdn.net/ajax/libs/axios/1.3.6/axios.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/markdown-it@12"></script>
|
||||
<script src="//cdn.bootcdn.net/ajax/libs/axios/1.3.6/axios.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
<script>
|
||||
/* 下载应用的hover处理函数 */
|
||||
@ -365,7 +363,7 @@ animateBoxes();
|
||||
const logsItem = getItem('logs_dowmload_en')
|
||||
const updates = document.getElementById('releases');
|
||||
if(!logsItem) {
|
||||
const url = "https://www.dootask.com/api/system/get/updatelog"
|
||||
const url = "../../api/system/get/updatelog"
|
||||
axios.get(url).then(res=>{
|
||||
const changelog=res.data.data.updateLog
|
||||
const regex = /## \[(.*?)\]\n([\s\S]*?)(?=\n\n## \[|$)/g;
|
||||
@ -374,7 +372,7 @@ if(!logsItem) {
|
||||
while ((match = regex.exec(changelog)) !== null) {
|
||||
Versions.push(match[1])
|
||||
}
|
||||
const releases = Versions.slice(0,3).map((item,index)=>{
|
||||
const releases = Versions.slice(0,5).map((item,index)=>{
|
||||
return `
|
||||
<li class="update-item" onclick="localStorageHandle(${index+1})">
|
||||
<h5 class="txt-4001624 update-h5">DooTask ${item} update</h5>
|
||||
@ -390,13 +388,5 @@ if(!logsItem) {
|
||||
}else{
|
||||
updates.innerHTML = logsItem;
|
||||
}
|
||||
|
||||
/* 生成网页二维码二维码 */
|
||||
if(window.location.host !== ''){
|
||||
const url = window.location.href;
|
||||
const matchResult = url.match(/^(.*?)(?=\/site)/);
|
||||
const result = matchResult[1];
|
||||
new QRCode(document.getElementById('qrcode'), `${result}/site/en/distribute.html`); // 测试
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
|
||||
@ -250,7 +250,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">Try Now</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">Try Now</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -183,7 +183,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">Try Now</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">Try Now</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -168,7 +168,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">Try Now</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">Try Now</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@ -208,8 +208,8 @@
|
||||
</div>
|
||||
</body>
|
||||
<script src="//cdn.jsdelivr.net/npm/markdown-it/dist/markdown-it.min.js"></script>
|
||||
<script src="//cdn.bootcdn.net/ajax/libs/axios/1.3.6/axios.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
<script src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
|
||||
<script>
|
||||
window.onload = function() {
|
||||
const targetId = window.location.hash.substring(1); // 获取 URL 中的锚点 id
|
||||
@ -350,7 +350,7 @@ function domHandle (html){
|
||||
}
|
||||
const logs = getItem('logs')
|
||||
if(!logs) {
|
||||
const url = "https://www.dootask.com/api/system/get/updatelog"
|
||||
const url = "../../api/system/get/updatelog"
|
||||
axios.get(url).then(res=>{
|
||||
const changelog=res.data.data.updateLog
|
||||
const md = new markdownit();
|
||||
|
||||
@ -281,7 +281,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">Try Now</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">Try Now</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -458,7 +458,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">Try Now</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">Try Now</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -173,7 +173,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">Try Now</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">Try Now</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -1,637 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>DooTask</title>
|
||||
<meta name="google" value="notranslate">
|
||||
<meta name="description" content="DooTask是一款轻量级的开源在线项目任务管理工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具。助力团队高效推进项目,让工作更简单。">
|
||||
<meta name="keywords" content="中国 DooTask 开源在线项目 任务管理工具 任务管理 轻量级 海豚有海 团队协作">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="shortcut icon" href="img/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="css/common.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/rem.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/home.css">
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="layout">
|
||||
<!-- 页头区域 -->
|
||||
<header class="head">
|
||||
<div class="nav">
|
||||
<div class="nav-layout">
|
||||
<a href="./zh/index.html" class="logo">
|
||||
<img id="logo" src="./img/light/logo.svg" alt="DooTaskLogo">
|
||||
<i class="dootask txt-7002027">DooTask</i>
|
||||
</a>
|
||||
<ul class="nav-ul">
|
||||
<li class="nav-ul-item">
|
||||
<a class="txt-4001620 txt nav-product" href="./zh/product.html">产品</a>
|
||||
</li>
|
||||
<li class="nav-ul-item">
|
||||
<a class="txt-4001620 txt nav-solutions" href="./zh/solutions.html">解决方案</a>
|
||||
</li>
|
||||
<li class="nav-ul-item">
|
||||
<i class="txt-4001620 txt nav-support" id="support-txt" onclick="showMenuPopHandle()">
|
||||
支持
|
||||
<img class="nav-vector" src="img/vector.svg" alt="支持" id="drop-down-svg">
|
||||
</i>
|
||||
<ol class="submenu-pop" id="submenu-pop">
|
||||
<li class="submenu-pop-item" onclick="changeMenu()">
|
||||
<a class="txt-4001418 txt-sub" href="./zh/download.html">下载中心</a>
|
||||
</li>
|
||||
<li class="submenu-pop-item" onclick="changeMenu()">
|
||||
<a class="txt-4001418 txt-sub" href="./zh/help.html">帮助中心</a>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li class="nav-ul-item">
|
||||
<a class="txt-4001620 txt nav-price" href="./zh/price.html">服务价格</a>
|
||||
</li>
|
||||
<li class="nav-ul-item">
|
||||
<a class="txt-4001620 txt nav-about" href="./zh/about.html">关于我们</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="nav-r">
|
||||
<div class="lang" id="lang-img">
|
||||
<img src="img/lang-select.svg" alt="语言切换" onclick="shouLangPopHandle()">
|
||||
<ul class="lang-pop" id="lang-pop">
|
||||
<li class="lang-pop-item" onclick="changeLanguage('zh')">
|
||||
<i class="lang-txt">简体中文</i>
|
||||
</li>
|
||||
<li class="lang-pop-item" onclick="changeLanguage('en')">
|
||||
<i class="lang-txt">English</i>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<i class="nav-r-icon theme_dark" onclick="setTheme('light')">
|
||||
<img src="img/light.svg" alt="明亮主题">
|
||||
</i>
|
||||
<i class="nav-r-icon theme_light" onclick="setTheme('dark')">
|
||||
<img src="img/drak.svg" alt="暗黑主题">
|
||||
</i>
|
||||
<a href="https://github.com/kuaifan/dootask">
|
||||
<i class="nav-r-icon">
|
||||
<img src="img/github.svg" alt="github">
|
||||
</i>
|
||||
</a>
|
||||
<i class="line-1"></i>
|
||||
<span class="get-started">
|
||||
<a href="../manage/dashboard">
|
||||
<button class="btn btn-primary" >立即体验</button>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="menuBtn">
|
||||
<img id="menuBtn" src="img/menu.svg" alt="菜单">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="topics">
|
||||
<div class="topics-con">
|
||||
<div class="topics-layout">
|
||||
<div class="topics-tit mb-32" style="width: auto !important;">
|
||||
<span class="txt-6007290 topics-h1-green">
|
||||
DooTask
|
||||
<svg class="arcs" width="312" height="23" viewBox="0 0 312 23" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path id="arc" opacity="0.5" d="M3 20C47.4822 7.1714 170.957 -10.7886 309 20" stroke="#8BCF70" stroke-width="6" stroke-linecap="round" stroke-dasharray="600, 600" stroke-dashoffset="0"/>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="txt-6007290 topics-h1">,轻量级任务管理工具</span>
|
||||
</div>
|
||||
<h4 class="txt-4001830 topics-h4 mb-32">DooTask是一款轻量级的开源在线项目任务管理工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具。助力团队高效推进项目,让工作更简单。</h4>
|
||||
<div class="flex-cc topics-btn">
|
||||
<span class="mr-24 get-started">
|
||||
<a href="./zh/price.html" >
|
||||
<button class="btn btn-primary mr-20">开始使用</button>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="ten_img">
|
||||
<img class="home-pic" id="home_pic" src="img/light/zh_home_pic1.png" alt="DooTask是一款轻量级的开源在线项目任务管理工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具。助力团队高效推进项目,让工作更简单。">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<i class="green-bg1"></i>
|
||||
</header>
|
||||
<!-- 菜单抽屉 -->
|
||||
<div class="drawer">
|
||||
<div class="drawer-t mb-36">
|
||||
<a href="./site/zh/index.html" class="logo">
|
||||
<img id="logo" src="./img/light/logo.svg" alt="DooTaskLogo">
|
||||
<i class="dootask txt-7002027">DooTask</i>
|
||||
</a>
|
||||
<i class="close-drawer" onclick="closeDraweHandle()">✕</i>
|
||||
</div>
|
||||
<ul class="drawer-ul">
|
||||
<li class="drawer-item-t mb-16">
|
||||
<div class="drawer-item" onclick="closeDraweHandle()">
|
||||
<a class="txt-4001620 txt" href="./zh/product.html">产品</a>
|
||||
</div>
|
||||
<div class="drawer-item" onclick="closeDraweHandle()">
|
||||
<a class="txt-4001620 txt" href="./site/zh/solutions.html">解决方案</a>
|
||||
</div>
|
||||
<div class="drawer-item" onclick="expandMenuHandle('support')">
|
||||
<i class="txt-4001620 txt">
|
||||
支持
|
||||
<img src="img/vector.svg" class="nav-vector" alt="支持" id="drawer-down-support-svg">
|
||||
</i>
|
||||
</div>
|
||||
<ol class="drawer-active" id="support" style="display: none;">
|
||||
<li class="drawer-item" onclick="changeMenu()">
|
||||
<a class="txt-4001620 txt" href="./site/zh/download.html">下载中心</a>
|
||||
</li>
|
||||
<li class="drawer-item" onclick="changeMenu()">
|
||||
<a class="txt-4001620 txt" href="./site/zh/help.html">帮助中心</a>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="drawer-item" onclick="closeDraweHandle()">
|
||||
<a class="txt-4001620 txt" href="./site/zh/price.html">服务价格</a>
|
||||
</div>
|
||||
<div class="drawer-item mb-16" onclick="closeDraweHandle()">
|
||||
<a class="txt-4001620 txt" href="./site/zh/about.html">关于我们</a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="drawer-item-c">
|
||||
<div class="drawer-item" onclick="expandMenuHandle('theme')">
|
||||
<i class="txt-4001620 txt">
|
||||
主题
|
||||
<img src="img/vector.svg" alt="主题" class="nav-vector" id="drawer-down-theme-svg">
|
||||
</i>
|
||||
</div>
|
||||
<ol class="drawer-active" id="theme" style="display: none;">
|
||||
<li class="drawer-item" onclick="setTheme('light')">
|
||||
<i class="txt-4001620 txt">Light</i>
|
||||
</li>
|
||||
<li class="drawer-item" onclick="setTheme('dark')">
|
||||
<i class="txt-4001620 txt">Dark</i>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="drawer-item" onclick="expandMenuHandle('language')">
|
||||
<i class="txt-4001620 txt">
|
||||
语言
|
||||
<img src="img/vector.svg" alt="语言" class="nav-vector" id="drawer-down-language-svg">
|
||||
</i>
|
||||
</div>
|
||||
<ol class="drawer-active" id="language" style="display: none;">
|
||||
<li class="drawer-item" onclick="changeLanguage('zh')">
|
||||
<i class="txt-4001620 txt">简体中文</i>
|
||||
</li>
|
||||
<li class="drawer-item" onclick="changeLanguage('en')">
|
||||
<i class="txt-4001620 txt">English</i>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">立即体验</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- 内容区域 -->
|
||||
<main>
|
||||
<!-- 主要区域划分 -->
|
||||
<section>
|
||||
<!-- 合作公司区域 -->
|
||||
<article class="companies">
|
||||
<div class="companies-con">
|
||||
<h1 class="companies-h1 txt-4003645">受到许多公司的信任</h1>
|
||||
<ul class="companies-ul">
|
||||
<li class="companies-ul-item">
|
||||
<img id="home_icon1" src="img/light/home_icon1.png" alt="陕建集团">
|
||||
</li>
|
||||
<li class="companies-ul-item">
|
||||
<img id="home_icon2" src="img/light/home_icon2.png" alt="艾特科">
|
||||
</li>
|
||||
<li class="companies-ul-item">
|
||||
<img id="home_icon3" src="img/light/home_icon3.png" alt="中国联通">
|
||||
</li>
|
||||
<li class="companies-ul-item">
|
||||
<img id="home_icon4" src="img/light/home_icon4.png" alt="旗雲科技">
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</article>
|
||||
<!-- 功能卡片区域 -->
|
||||
<article class="card">
|
||||
<div class="card-con">
|
||||
<h1 class="txt-5004455 card-h1 mb-80">使用场景</h1>
|
||||
<div class="card-con-layout">
|
||||
<ul class="card-ul">
|
||||
<li class="card-ul-item active">
|
||||
<img class="icon" src="img/home_icon1.svg" alt="项目管理">
|
||||
<div class="card-ul-item-unfolded">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">项目管理</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="项目管理">
|
||||
</div>
|
||||
<div class="card-ul-item-expand" >
|
||||
<div class="card-ul-item-expand-tit">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">项目管理</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="支持多种项目管理模式,适用于各种规模和类型的项目管理,实时掌控项目进度,优化工作流程;">
|
||||
</div>
|
||||
<i class="txt-4001624 card-ul-item-txt" style="--delay: 0.3s;">支持多种项目管理模式,适用于各种规模和类型的项目管理,实时掌控项目进度,优化工作流程;</i>
|
||||
</div>
|
||||
</li>
|
||||
<li class="card-ul-item">
|
||||
<img class="icon" src="img/home_icon2.svg" alt="团队协作">
|
||||
<div class="card-ul-item-unfolded">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">团队协作</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="团队协作">
|
||||
</div>
|
||||
<div class="card-ul-item-expand">
|
||||
<div class="card-ul-item-expand-tit">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">团队协作</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="提供丰富实用的在线文档协作工具,方便团队成员之间的沟通和协作,提高工作效率。">
|
||||
</div>
|
||||
<i class="txt-4001624 card-ul-item-txt" style="--delay: 0.3s;">提供丰富实用的在线文档协作工具,方便团队成员之间的沟通和协作,提高工作效率。</i>
|
||||
</div>
|
||||
</li>
|
||||
<li class="card-ul-item">
|
||||
<img class="icon" src="img/home_icon3.svg" alt="任务协同">
|
||||
<div class="card-ul-item-unfolded">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">任务协同</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="任务协同">
|
||||
</div>
|
||||
<div class="card-ul-item-expand">
|
||||
<div class="card-ul-item-expand-tit">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">任务协同</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="以任务化的方式让团队的工作井井有条,保证团队协作的高效性和任务分工的明确性。">
|
||||
</div>
|
||||
<i class="txt-4001624 card-ul-item-txt" style="--delay: 0.3s;">以任务化的方式让团队的工作井井有条,保证团队协作的高效性和任务分工的明确性。</i>
|
||||
</div>
|
||||
</li>
|
||||
<li class="card-ul-item">
|
||||
<img class="icon" src="img/home_icon4.svg" alt="绩效衡量">
|
||||
<div class="card-ul-item-unfolded">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">绩效衡量</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="绩效衡量">
|
||||
</div>
|
||||
<div class="card-ul-item-expand">
|
||||
<div class="card-ul-item-expand-tit">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">绩效衡量</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="建立可量化的评价标准,数据化呈现工作成效,凝聚核心人才;">
|
||||
</div>
|
||||
<i class="txt-4001624 card-ul-item-txt" style="--delay: 0.3s;">建立可量化的评价标准,数据化呈现工作成效,凝聚核心人才;</i>
|
||||
</div>
|
||||
</li>
|
||||
<li class="card-ul-item">
|
||||
<img class="icon" src="img/home_icon5.svg" alt="沟通汇报">
|
||||
<div class="card-ul-item-unfolded">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">沟通汇报</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="沟通汇报">
|
||||
</div>
|
||||
<div class="card-ul-item-expand">
|
||||
<div class="card-ul-item-expand-tit">
|
||||
<h3 class="txt-5002025 card-ul-item-h3">沟通汇报</h3>
|
||||
<img class="arrows" src="img/vector.svg" alt="基于工作场景的即时通讯及共享,实现更好的团队沟通;">
|
||||
</div>
|
||||
<i class="txt-4001624 card-ul-item-txt" style="--delay: 0.3s;">基于工作场景的即时通讯及共享,实现更好的团队沟通;</i>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<img class="card-pic" id="home_pic2" src="img/light/zh_home_pic2.png" alt="支持多种项目管理模式,适用于各种规模和类型的项目管理,实时掌控项目进度,优化工作流程。">
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-con-768">
|
||||
<h1 class="txt-5002228 card-h1 mb-32">使用场景</h1>
|
||||
<div class="card-con-layout">
|
||||
<ul class="card-768-ul">
|
||||
<li style="width: 100%;">
|
||||
<img class="icon" src="img/home_icon1.svg" alt="项目管理">
|
||||
<h3 class="txt-5001822 card-ul-item-h3 mb-12">项目管理</h3>
|
||||
<i class="txt-4001524 card-ul-item-txt mb-16">支持多种项目管理模式,适用于各种规模和类型的项目管理,实时掌控项目进度,优化工作流程。</i>
|
||||
<img class="card-pic mb-40" id="home_pic2" src="img/light/zh_home_pic2.png" alt="支持多种项目管理模式,适用于各种规模和类型的项目管理,实时掌控项目进度,优化工作流程。">
|
||||
</li>
|
||||
<li style="width: 100%;">
|
||||
<img class="icon" src="img/home_icon2.svg" alt="团队协作">
|
||||
<h3 class="txt-5001822 card-ul-item-h3 mb-12">团队协作</h3>
|
||||
<i class="txt-4001524 card-ul-item-txt mb-16">提供丰富实用的在线文档协作工具,方便团队成员之间的沟通和协作,提高工作效率。</i>
|
||||
<img class="card-pic mb-40" id="home_pic3" src="img/light/zh_home_pic3.png" alt="提供丰富实用的在线文档协作工具,方便团队成员之间的沟通和协作,提高工作效率。">
|
||||
</li>
|
||||
<li style="width: 100%;">
|
||||
<img class="icon" src="img/home_icon3.svg" alt="任务协同">
|
||||
<h3 class="txt-5001822 card-ul-item-h3 mb-12">任务协同</h3>
|
||||
<i class="txt-4001524 card-ul-item-txt mb-16">以任务化的方式让团队的工作井井有条,保证团队协作的高效性和任务分工的明确性。</i>
|
||||
<img class="card-pic mb-40" id="home_pic4" src="img/light/zh_home_pic4.png" alt="以任务化的方式让团队的工作井井有条,保证团队协作的高效性和任务分工的明确性。">
|
||||
</li>
|
||||
<li style="width: 100%;">
|
||||
<img class="icon" src="img/home_icon4.svg" alt="绩效衡量">
|
||||
<h3 class="txt-5001822 card-ul-item-h3 mb-12">绩效衡量</h3>
|
||||
<i class="txt-4001524 card-ul-item-txt mb-16">建立可量化的评价标准,数据化呈现工作成效,凝聚核心人才。</i>
|
||||
<img class="card-pic mb-40" id="home_pic5" src="img/light/zh_home_pic5.png" alt="建立可量化的评价标准,数据化呈现工作成效,凝聚核心人才。">
|
||||
</li>
|
||||
<li style="width: 100%;">
|
||||
<img class="icon" src="img/home_icon5.svg" alt="沟通汇报">
|
||||
<h3 class="txt-5001822 card-ul-item-h3 mb-12">沟通汇报</h3>
|
||||
<i class="txt-4001524 card-ul-item-txt mb-16">基于工作场景的即时通讯和分享,以实现更好的团队沟通。</i>
|
||||
<img class="card-pic" id="home_pic6" src="img/light/zh_home_pic6.png" alt="基于工作场景的即时通讯和分享,以实现更好的团队沟通。">
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<!-- 为什么选择我们区域 -->
|
||||
<article class="choose">
|
||||
<div class="choose-con">
|
||||
<ul class="choose-con-ul mb-32">
|
||||
<li class="choose-con-item">
|
||||
<h1 class="txt-5004455 choose-con-tit">
|
||||
为什么选择我们
|
||||
<svg class="arcs2" width="312" height="23" viewBox="0 0 312 23" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path class="home_arc" opacity="0.5" d="M3 20C47.4822 7.1714 170.957 -10.7886 309 20" stroke="#8BCF70" stroke-width="6" stroke-linecap="round" stroke-dasharray="600, 600" stroke-dashoffset="0"/>
|
||||
</svg>
|
||||
</h1>
|
||||
</li>
|
||||
<li class="choose-con-item hover home-animate-box" style="--delay: 0s;">
|
||||
<h1 class="txt-7003645 serial-number mb-24">01</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">高效便捷的团队沟通工具</h5>
|
||||
<h6 class="txt-4001624 choose-con-item-h6">针对项目和任务建立群组,工作问题可及时沟通,促进团队快速协作,提高团队工作效率。</h6>
|
||||
</li>
|
||||
<li class="choose-con-item hover home-animate-box" style="--delay: 0.1s;">
|
||||
<h1 class="txt-7003645 serial-number mb-24">02</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">强大易用的协同创作云文档</h5>
|
||||
<h6 class="txt-4001624 choose-con-item-h6">汇集文档、电子表格、思维笔记等多种在线工具,汇聚企业知识资源于一处,支持多人实时协同编辑,让团队协作更便捷。</h6>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="choose-con-ul">
|
||||
<li class="choose-con-item hover home-animate-box" style="--delay: 0.2s;">
|
||||
<h1 class="txt-7003645 serial-number mb-24">03</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">便捷多样的项目管理模版</h5>
|
||||
<h6 class="txt-4001624 choose-con-item-h6">模版满足多种团队协作场景,同时支持自定义模版,满足团队个性化场景管理需求,可直观的查看项目的进展情况,团队协作更方便。</h6>
|
||||
</li>
|
||||
<li class="choose-con-item hover home-animate-box" style="--delay: 0.3s;">
|
||||
<h1 class="txt-7003645 serial-number mb-24">04</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">清晰直观的任务日历</h5>
|
||||
<h6 class="txt-4001624 choose-con-item-h6">通过灵活的任务日历,轻松安排每一天的日程,把任务拆解到每天,让工作目标更清晰,时间分配更合理。</h6>
|
||||
</li>
|
||||
<li class="choose-con-item hover home-animate-box" style="--delay: 0.4s;">
|
||||
<h1 class="txt-7003645 serial-number mb-24">05</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">支持多平台应用</h5>
|
||||
<h6 class="txt-4001624 choose-con-item-h6">多平台应用支持,随时随地追踪项目进度,同时让你在工作中每一个步骤都能拥有更高效愉悦的体验。</h6>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="choose-con-768">
|
||||
<h1 class="txt-5004455 choose-con-tit">为什么选择我们<img class="arcs2" src="img/arcs.svg" alt="为什么选择我们"></h1>
|
||||
<div class="choose-con-768-box zh_choose_768">
|
||||
<ul class="choose-con-768-ul">
|
||||
<li class="choose-con-768-item active">
|
||||
<h1 class="txt-7003240 serial-number mb-24">01</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">高效便捷的团队沟通工具</h5>
|
||||
<h6 class="txt-4001524 choose-con-item-h6">针对项目和任务建立群组,工作问题可及时沟通,促进团队快速协作,提高团队工作效率。</h6>
|
||||
</li>
|
||||
<li class="choose-con-768-item">
|
||||
<h1 class="txt-7003240 serial-number mb-24">02</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">强大易用的协同创作云文档</h5>
|
||||
<h6 class="txt-4001524 choose-con-item-h6">汇集文档、电子表格、思维笔记等多种在线工具,汇聚企业知识资源于一处,支持多人实时协同编辑,让团队协作更便捷。</h6>
|
||||
</li>
|
||||
<li class="choose-con-768-item">
|
||||
<h1 class="txt-7003240 serial-number mb-24">03</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">便捷多样的项目管理模版</h5>
|
||||
<h6 class="txt-4001524 choose-con-item-h6">模版满足多种团队协作场景,同时支持自定义模版,满足团队个性化场景管理需求,可直观的查看项目的进展情况,团队协作更方便。</h6>
|
||||
</li>
|
||||
<li class="choose-con-768-item">
|
||||
<h1 class="txt-7003240 serial-number mb-24">04</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">清晰直观的任务日历</h5>
|
||||
<h6 class="txt-4001524 choose-con-item-h6">通过灵活的任务日历,轻松安排每一天的日程,把任务拆解到每天,让工作目标更清晰,时间分配更合理。</h6>
|
||||
</li>
|
||||
<li class="choose-con-768-item">
|
||||
<h1 class="txt-7003240 serial-number mb-24">05</h1>
|
||||
<h5 class="txt-5002025 mb-16 choose-con-item-h5">支持多平台应用</h5>
|
||||
<h6 class="txt-4001524 choose-con-item-h6">多平台应用支持,随时随地追踪项目进度,同时让你在工作中每一个步骤都能拥有更高效愉悦的体验。</h6>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul id="card-indicators">
|
||||
<li class="card-indicators-item active"></li>
|
||||
<li class="card-indicators-item"></li>
|
||||
<li class="card-indicators-item"></li>
|
||||
<li class="card-indicators-item"></li>
|
||||
<li class="card-indicators-item"></li>
|
||||
</ul>
|
||||
</div>
|
||||
</article>
|
||||
<article class="collaboration">
|
||||
<img id="home_pic7" class="home_pic7" src="img/light/home_pic7.svg" alt="开启您的DooTask团队协作">
|
||||
<img id="home_pic7_768" class="home_pic7_768" src="img/light/home_pic7_768.svg" alt="开启您的DooTask团队协作">
|
||||
<div class="collaboration-content collaboration-content-zh">
|
||||
<h1 class="collaboration-txt txt-5002835 mb-32">开启您的DooTask团队协作</h1>
|
||||
<div style="display: flex;">
|
||||
<span class="mr-24 get-started">
|
||||
<a href="./zh/price.html" >
|
||||
<button class="btn btn-gw mr-20">开始使用</button>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</section>
|
||||
</main>
|
||||
<!-- 页脚区域 -->
|
||||
<footer>
|
||||
<div class="footer-con">
|
||||
<div class="footer-layut">
|
||||
<div class="footer-l">
|
||||
<a href="./site/zh/index.html" class="logo">
|
||||
<img id="logo" src="img/light/logo.svg" alt="DooTask,Logo">
|
||||
<i class="dootask txt-7002027">DooTask</i>
|
||||
</a>
|
||||
<i class="txt txt-4001624">帮助团队有效地推进项目,使工作更轻松。</i>
|
||||
</div>
|
||||
<div class="footer-r">
|
||||
<ul class="footer-r-ul">
|
||||
<li class="footer-r-item">
|
||||
<ol class="footer-r-ol">
|
||||
<li class="footer-ol-item txt-5001624 mb-24">链接</li>
|
||||
<li class="footer-ol-item mb-16">
|
||||
<a class="txt-4001624 txt" href="./zh/product.html">产品</a>
|
||||
</li>
|
||||
<li class="footer-ol-item mb-16">
|
||||
<a class="txt-4001624 txt" href="./zh/solutions.html">解决方案</a>
|
||||
</li>
|
||||
<li class="footer-ol-item mb-16">
|
||||
<a class="txt-4001624 txt" href="./zh/price.html">服务价格</a>
|
||||
</li>
|
||||
<li class="footer-ol-item">
|
||||
<a class="txt-4001624 txt" href="./zh/about.html">关于我们</a>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li class="footer-r-item">
|
||||
<ol class="footer-r-ol">
|
||||
<li class="footer-ol-item txt-5001624 mb-24">支持</li>
|
||||
<li class="footer-ol-item mb-16">
|
||||
<a class="txt-4001624 txt" href="./zh/download.html">下载中心</a>
|
||||
</li>
|
||||
<li class="footer-ol-item">
|
||||
<a class="txt-4001624 txt" href="./zh/help.html">帮助中心</a>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li class="footer-r-item">
|
||||
<ol class="footer-r-ol">
|
||||
<li class="footer-ol-item txt-5001624 mb-24">社区</li>
|
||||
<li class="footer-ol-item">
|
||||
<div class="footer-ol-item mb-16">
|
||||
<i class="txt-4001624 txt" onclick="openInNewTab('https://github.com/kuaifan/dootask')">Github</i>
|
||||
</div>
|
||||
<div class="footer-ol-item mb-16">
|
||||
<i class="txt-4001624 txt" onclick="openInNewTab('https://gitee.com/aipaw/dootask')">Gitee</i>
|
||||
</div>
|
||||
<div class="footer-ol-item" id="qq_group">
|
||||
<i class="txt-4001624 txt">QQ 群</i>
|
||||
<div class="group_code">
|
||||
<img class="code-svg" id="home_code" src="img/qq_code.jpg" alt="群号:546574618">
|
||||
<i class="group_num">群号:546574618</i>
|
||||
<i class="lower_triangle"></i>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="txt-4001624 filings">
|
||||
Copyright © 2022-2023 DooTask. All rights reserved.
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
<script src="js/common.js"></script>
|
||||
<script>
|
||||
/* 功能卡片切换函数 */
|
||||
const tabs = document.querySelector('.card-ul');
|
||||
const funImg = document.querySelector('#home_pic2');
|
||||
const tabItems = tabs.querySelectorAll('.card-ul-item');
|
||||
const lang = localStorage.getItem('lang')
|
||||
tabs.addEventListener('click', function (event) {
|
||||
const theme = localStorage.getItem('theme')
|
||||
const clickedItem = event.target.closest('.card-ul-item');
|
||||
if (clickedItem && !clickedItem.classList.contains('active')) {
|
||||
// 切换激活状态
|
||||
for (let [index,value] of tabItems.entries()) {
|
||||
if(value === clickedItem){
|
||||
funImg.setAttribute('src', `/img/${theme?theme:'light'}/${lang}_home_pic${index+2}.png`)
|
||||
}
|
||||
value.classList.toggle('active', value === clickedItem);
|
||||
// 判断浏览器语言
|
||||
var language = (navigator.language || navigator.browserLanguage).toLowerCase();
|
||||
if (language.indexOf('zh') > -1) {
|
||||
window.location.href = './zh/index.html'
|
||||
} else {
|
||||
window.location.href = './en/index.html'
|
||||
}
|
||||
}
|
||||
});
|
||||
/* 为什么选择我们卡片切换函数 */
|
||||
const cardCarousel = document.querySelector('.choose-con-768');
|
||||
const targetDiv = document.querySelector('.choose-con-768-ul')
|
||||
const cardItems = cardCarousel.querySelectorAll('.choose-con-768-item');
|
||||
const indicators = cardCarousel.querySelectorAll('.card-indicators-item');
|
||||
const choose768box = document.querySelector('.choose-con-768-box')
|
||||
let activeIndex = 0;
|
||||
let innerWidth = window.innerWidth
|
||||
let intervalId;
|
||||
let timerId2;
|
||||
choose768box.style.minHeight = targetDiv.clientHeight + 20 + 'px'
|
||||
for (let i = 0; i < indicators.length; i++) {
|
||||
indicators[i].addEventListener('click', () => {
|
||||
indicators[activeIndex].classList.remove('active');
|
||||
activeIndex = i
|
||||
targetDiv.style.left = -innerWidth * i + 'px'
|
||||
indicators[i].classList.add('active');
|
||||
stopInterval()
|
||||
timerId2 = setTimeout(()=>{
|
||||
startInterval()
|
||||
clearTimeout(timerId2)
|
||||
},1500)
|
||||
});
|
||||
}
|
||||
const intervalFunc1 = () => {
|
||||
activeIndex -= 1
|
||||
targetDiv.style.left = -innerWidth * activeIndex + 'px'
|
||||
indicators[activeIndex].classList.add('active');
|
||||
indicators[activeIndex+1].classList.remove('active');
|
||||
};
|
||||
const intervalFunc2 = () => {
|
||||
activeIndex += 1
|
||||
targetDiv.style.left = -activeIndex * innerWidth + 'px'
|
||||
indicators[activeIndex].classList.add('active');
|
||||
indicators[activeIndex-1].classList.remove('active');
|
||||
};
|
||||
const positioning = ()=>{
|
||||
activeIndex = 0
|
||||
targetDiv.style.left = 0 + 'px'
|
||||
targetDiv.style.transition = 'none';
|
||||
indicators[0].classList.add('active');
|
||||
indicators[4].classList.remove('active');
|
||||
}
|
||||
const swapFormat = ()=> {
|
||||
if(activeIndex >= 4){
|
||||
positioning()
|
||||
}else{
|
||||
targetDiv.style.transition = 'all cubic-bezier(0, -0.26, 0.13, 1.04) .8s';
|
||||
intervalFunc2()
|
||||
}
|
||||
}
|
||||
const startInterval = ()=> {
|
||||
intervalId = setInterval(swapFormat, 3000)
|
||||
}
|
||||
startInterval()
|
||||
const stopInterval = ()=> {
|
||||
clearInterval(intervalId);
|
||||
}
|
||||
let startX = 0;
|
||||
let startY = 0;
|
||||
let isSwipe = false; // 添加一个状态标志
|
||||
targetDiv.addEventListener('touchstart', function(event) {
|
||||
startX = event.touches[0].pageX;
|
||||
startY = event.touches[0].pageY;
|
||||
isSwipe = false; // 每次按下时重置状态标志
|
||||
});
|
||||
targetDiv.addEventListener('touchmove', function(event) {
|
||||
if (!isSwipe) { // 如果没有有效的滑动操作,则执行滑动逻辑
|
||||
let endX = event.targetTouches[0].pageX;
|
||||
let endY = event.targetTouches[0].pageY;
|
||||
let distanceX = endX - startX;
|
||||
let distanceY = endY - startY;
|
||||
if (Math.abs(distanceX) > Math.abs(distanceY)) {
|
||||
if (distanceX > 0) {
|
||||
if(activeIndex != 0){
|
||||
intervalFunc1()
|
||||
}
|
||||
} else {
|
||||
if(activeIndex < 4){
|
||||
intervalFunc2()
|
||||
}
|
||||
}
|
||||
isSwipe = true; // 标记当前有一个有效的滑动操作
|
||||
stopInterval()
|
||||
}
|
||||
startX = endX;
|
||||
startY = endY;
|
||||
}
|
||||
});
|
||||
targetDiv.addEventListener('touchend', function(event) {
|
||||
isSwipe = false; // 松开时重置状态标志
|
||||
startInterval()
|
||||
});
|
||||
/* 滑动到可视区域执行动画 */
|
||||
const boxes = document.querySelectorAll('.home-animate-box');
|
||||
const arcs = document.querySelector('.home_arc');
|
||||
let timerId = null
|
||||
const animateBoxes = ()=> {
|
||||
boxes.forEach(box => {
|
||||
const boxTop = box.getBoundingClientRect().top;
|
||||
const boxBottom = box.getBoundingClientRect().bottom;
|
||||
if (boxTop < window.innerHeight && boxBottom > 0) {
|
||||
box.classList.add('animate');
|
||||
arcs.classList.add('arc-animate');
|
||||
timerId = setTimeout(()=>{
|
||||
box.classList.remove('home-animate-box');
|
||||
timerId = null
|
||||
},1300)
|
||||
}
|
||||
});
|
||||
}
|
||||
window.addEventListener('scroll', animateBoxes);
|
||||
animateBoxes();
|
||||
</script>
|
||||
</html>
|
||||
|
||||
30
public/site/js/common.js
vendored
30
public/site/js/common.js
vendored
@ -2,7 +2,7 @@ const menuBtn = document.getElementById('menuBtn'); // 768模式下的菜单按
|
||||
const drawer = document.querySelector('.drawer'); // 768模式下的菜单
|
||||
const theme_light = document.querySelectorAll('.theme_light');
|
||||
const theme_dark = document.querySelectorAll('.theme_dark');
|
||||
/* 主题切换更换图片 */
|
||||
/* 主题切换更换图片 */
|
||||
const themeSwitch = (val1,val2)=>{
|
||||
theme_light.forEach(item=>{
|
||||
item.style.display = val1
|
||||
@ -11,7 +11,7 @@ const themeSwitch = (val1,val2)=>{
|
||||
item.style.display = val2
|
||||
})
|
||||
}
|
||||
/* 更换图片 */
|
||||
/* 更换图片 */
|
||||
const changeImageSrc = (img, src) => {
|
||||
const imgDom = document.querySelectorAll(img);
|
||||
const url = window.location.href // 获取当前浏览器 URL
|
||||
@ -21,20 +21,20 @@ const changeImageSrc = (img, src) => {
|
||||
})
|
||||
}
|
||||
};
|
||||
/* 设置默认语言 */
|
||||
/* 设置默认语言 */
|
||||
if(!localStorage.getItem('lang')){
|
||||
localStorage.setItem('lang','zh')
|
||||
}
|
||||
/* 设置默认主题 */
|
||||
/* 设置默认主题 */
|
||||
const localStorageTheme = localStorage.getItem('theme')
|
||||
if(!localStorageTheme){
|
||||
setTheme('light')
|
||||
if(!localStorageTheme){
|
||||
setTheme('light')
|
||||
localStorage.setItem('theme', 'light')
|
||||
}else{
|
||||
setTheme(localStorageTheme)
|
||||
setTheme(localStorageTheme)
|
||||
}
|
||||
|
||||
/* 切换主题函数 */
|
||||
/* 切换主题函数 */
|
||||
function setTheme(theme) {
|
||||
const root = document.documentElement;
|
||||
const lang = localStorage.getItem('lang')
|
||||
@ -102,12 +102,12 @@ function setTheme(theme) {
|
||||
localStorage.setItem('theme', theme)
|
||||
drawer.classList.remove('open-drawer');
|
||||
}
|
||||
/* 导航选中激活 */
|
||||
/* 导航选中激活 */
|
||||
const url = window.location.pathname;
|
||||
const currentTabName = url.split('/')[url.split('/').length - 1].split('.')[0]
|
||||
if(currentTabName
|
||||
&& currentTabName != 'index'
|
||||
&& currentTabName != 'help'
|
||||
if(currentTabName
|
||||
&& currentTabName != 'index'
|
||||
&& currentTabName != 'help'
|
||||
&& currentTabName != 'download'
|
||||
&& currentTabName != 'log'){
|
||||
const currentTab = document.querySelector(`.nav-${currentTabName}`)
|
||||
@ -115,7 +115,7 @@ if(currentTabName
|
||||
currentTab.style.color = 'var(--text-color)';
|
||||
currentTab.style.borderRadius = '6px';
|
||||
}
|
||||
/* 导航下拉菜单函数 */
|
||||
/* 导航下拉菜单函数 */
|
||||
const submenuPopDom = document.querySelector('#submenu-pop');
|
||||
const dropDownSvgDom = document.querySelector('#drop-down-svg');
|
||||
const showMenuPopHandle = ()=>{
|
||||
@ -196,10 +196,6 @@ window.addEventListener('scroll', () => {
|
||||
navbar.classList.remove('navbar-white');
|
||||
}
|
||||
});
|
||||
/* 去登录函数 */
|
||||
const goToLoginHandle = ()=>{
|
||||
window.location.href = `https://www.dootask.com/manage/dashboard`
|
||||
}
|
||||
const openInNewTab = (url)=> {
|
||||
const win = window.open(url, '_blank');
|
||||
win.focus();
|
||||
|
||||
@ -202,7 +202,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">立即体验</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">立即体验</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -75,7 +75,7 @@
|
||||
</a>
|
||||
<i class="line-1"></i>
|
||||
<span class="get-started">
|
||||
<a href="https://www.dootask.com/manage/dashboard">
|
||||
<a href="../../manage/dashboard">
|
||||
<button class="btn btn-primary" >立即体验</button>
|
||||
</a>
|
||||
</span>
|
||||
@ -132,7 +132,7 @@
|
||||
<img class="icon mb-8" src="../img/dow_window.svg" alt="Windows">
|
||||
<i class="txt-4001624 txt">Windows</i>
|
||||
</p>
|
||||
<a class="hover radius" id="winx64Link" href="https://www.dootask.com/desktop/publish/latest?platform=windows&arch=x64" target="_blank">
|
||||
<a class="hover radius" id="winx64Link" href="https://www.dootask.com/desktop/publish/latest?platform=win&arch=x64" target="_blank">
|
||||
<img class="icon mb-8" src="../img/dow_icon.svg" alt="Windows,下载">
|
||||
<i class="txt-4001624 txt">下载</i>
|
||||
</a>
|
||||
@ -212,7 +212,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">立即体验</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">立即体验</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@ -316,48 +316,10 @@
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
<script src="https://cdn.bootcdn.net/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
|
||||
<script src="https://cdn.bootcdn.net/ajax/libs/axios/1.3.6/axios.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/markdown-it@12"></script>
|
||||
<script src="//cdn.bootcdn.net/ajax/libs/axios/1.3.6/axios.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
<script>
|
||||
window.onload = function(){
|
||||
// 获取日志
|
||||
const logsItem = getItem('logs_dowmload_zh')
|
||||
const updates = document.getElementById('releases');
|
||||
if(!logsItem) {
|
||||
const url = "https://www.dootask.com/api/system/get/updatelog"
|
||||
axios.get(url).then(res=>{
|
||||
const changelog=res.data.data.updateLog
|
||||
const regex = /## \[(.*?)\]\n([\s\S]*?)(?=\n\n## \[|$)/g;
|
||||
let match;
|
||||
const Versions = []
|
||||
while ((match = regex.exec(changelog)) !== null) {
|
||||
Versions.push(match[1])
|
||||
}
|
||||
const releases = Versions.slice(0,3).map((item,index)=>{
|
||||
return `
|
||||
<li class="update-item" onclick="localStorageHandle(${index+1})">
|
||||
<h5 class="txt-4001624 update-h5">DooTask ${item} 更新</h5>
|
||||
</li>
|
||||
`;
|
||||
}).join('')
|
||||
let record = {value: releases, expired: new Date().getTime() + 30 * 60 * 1000};
|
||||
localStorage.setItem('logs_dowmload_zh', JSON.stringify(record))
|
||||
updates.innerHTML = releases;
|
||||
const md = new markdownit();
|
||||
const html = md.render(changelog);
|
||||
console.log(html,"html");
|
||||
let record1 = {value: html, expired: new Date().getTime() + 30 * 60 * 1000};
|
||||
localStorage.setItem('logs',JSON.stringify(record1))
|
||||
}).catch(err=>{
|
||||
console.log(err,"err");
|
||||
})
|
||||
}else{
|
||||
updates.innerHTML = logsItem;
|
||||
}
|
||||
}
|
||||
/* 下载应用的hover处理函数 */
|
||||
/* 下载应用的hover处理函数 */
|
||||
const download = document.querySelector('.download-ul');
|
||||
const downloadItems = download.querySelectorAll('.download-ul-item');
|
||||
const handleMouseover = (val)=>{
|
||||
@ -399,7 +361,7 @@ animateBoxes();
|
||||
const logsItem = getItem('logs_dowmload_zh')
|
||||
const updates = document.getElementById('releases');
|
||||
if(!logsItem) {
|
||||
const url = "https://www.dootask.com/api/system/get/updatelog"
|
||||
const url = "../../api/system/get/updatelog"
|
||||
axios.get(url).then(res=>{
|
||||
const changelog=res.data.data.updateLog
|
||||
const regex = /## \[(.*?)\]\n([\s\S]*?)(?=\n\n## \[|$)/g;
|
||||
@ -408,7 +370,7 @@ if(!logsItem) {
|
||||
while ((match = regex.exec(changelog)) !== null) {
|
||||
Versions.push(match[1])
|
||||
}
|
||||
const releases = Versions.slice(0,3).map((item,index)=>{
|
||||
const releases = Versions.slice(0,5).map((item,index)=>{
|
||||
return `
|
||||
<li class="update-item" onclick="localStorageHandle(${index+1})">
|
||||
<h5 class="txt-4001624 update-h5">DooTask ${item} 更新</h5>
|
||||
@ -418,23 +380,11 @@ if(!logsItem) {
|
||||
let record = {value: releases, expired: new Date().getTime() + 30 * 60 * 1000};
|
||||
localStorage.setItem('logs_dowmload_zh', JSON.stringify(record))
|
||||
updates.innerHTML = releases;
|
||||
const md = new markdownit();
|
||||
const html = md.render(changelog);
|
||||
let record1 = {value: html, expired: new Date().getTime() + 30 * 60 * 1000};
|
||||
localStorage.setItem('logs',JSON.stringify(record1))
|
||||
}).catch(err=>{
|
||||
console.log(err,"err");
|
||||
})
|
||||
}else{
|
||||
updates.innerHTML = logsItem;
|
||||
}
|
||||
|
||||
/* 生成网页二维码二维码 */
|
||||
if(window.location.host !== ''){
|
||||
const url = window.location.href;
|
||||
const matchResult = url.match(/^(.*?)(?=\/site)/);
|
||||
const result = matchResult[1];
|
||||
new QRCode(document.getElementById('qrcode'), `${result}/site/zh/distribute.html`); // 测试
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
|
||||
@ -250,7 +250,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">立即体验</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">立即体验</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -183,7 +183,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">立即体验</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">立即体验</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -75,7 +75,7 @@
|
||||
</a>
|
||||
<i class="line-1"></i>
|
||||
<span class="get-started">
|
||||
<a href="https://www.dootask.com/manage/dashboard">
|
||||
<a href="../../manage/dashboard">
|
||||
<button class="btn btn-primary" >立即体验</button>
|
||||
</a>
|
||||
</span>
|
||||
@ -168,7 +168,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">立即体验</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">立即体验</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@ -207,9 +207,8 @@
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
<script src="https://cdn.jsdelivr.net/npm/markdown-it/dist/markdown-it.min.js"></script>
|
||||
<script src="https://cdn.bootcdn.net/ajax/libs/axios/1.3.6/axios.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/markdown-it@12"></script>
|
||||
<script src="//cdn.jsdelivr.net/npm/markdown-it/dist/markdown-it.min.js"></script>
|
||||
<script src="//cdn.bootcdn.net/ajax/libs/axios/1.3.6/axios.js"></script>
|
||||
<script src="../js/common.js"></script>
|
||||
<script>
|
||||
window.onload = function() {
|
||||
@ -350,7 +349,7 @@ const domHandle = (html)=>{
|
||||
}
|
||||
const logs = getItem('logs')
|
||||
if(!logs) {
|
||||
const url = "https://www.dootask.com/api/system/get/updatelog"
|
||||
const url = "../../api/system/get/updatelog"
|
||||
axios.get(url).then(res=>{
|
||||
const changelog=res.data.data.updateLog
|
||||
const md = new markdownit();
|
||||
|
||||
@ -282,7 +282,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">立即体验</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">立即体验</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -458,7 +458,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">立即体验</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">立即体验</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -173,7 +173,7 @@
|
||||
</li>
|
||||
<li class="drawer-item-b">
|
||||
<div class="drawer-item">
|
||||
<a class="txt-4001620 txt" href="https://www.dootask.com/manage/dashboard">立即体验</a>
|
||||
<a class="txt-4001620 txt" href="../../manage/dashboard">立即体验</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user