Files
dootask/public/site/zh/download.html
T

648 lines
26 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<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" href="../css/common.css" />
<link rel="stylesheet" type="text/css" href="../css/rem.css" />
<link rel="stylesheet" href="../css/download.css" />
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-16660800396"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-PE77P6491J"></script>
<script src="../js/googleAds.js"></script>
<script src="../js/googleAnalyze.js"></script>
<script src="../js/qs.min.js"></script>
</head>
<body>
<div class="BulletBox"></div>
<div id="layout">
<!-- 页头区域 -->
<header class="head dow">
<div class="nav">
<div class="nav-layout">
<a href="../zh/index.html" class="logo">
<img id="logo" src="../img/light/logo.svg" alt="DooTask,Logo" />
<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 src="../img/vector.svg" alt="支持" class="nav-vector" 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>
<li class="submenu-pop-item" onclick="changeMenu()">
<a class="txt-4001418 txt-sub" href="../zh/privacy.html" target="_blank">隐私政策</a>
</li>
<li class="submenu-pop-item" onclick="changeMenu()">
<a class="txt-4001418 txt-sub" href="../../docs/index.html" target="_blank">API
文档</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" target="_blank">
<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">
<span class="txt-6005670 topics-h1">下载DooTask客户端</span>
</div>
<h4 class="txt-4001830 topics-h4 mb-64">
同时支持iOS、Android、macOS、Windows版本
</h4>
<ul class="download-ul">
<li class="download-ul-item dow-animate-box" style="--delay: 0s" onmouseover="handleMouseover(0)"
onmouseout="handleMouseout(0)">
<a class="normal" href="https://apps.apple.com/cn/app/dootask/id1624855111" target="_blank" id="ios">
<img class="icon mb-8" src="../img/dow_ios.svg" alt="ios" />
<i class="txt-4001624 txt">ios</i>
</a>
<a class="hover" href="https://apps.apple.com/cn/app/dootask/id1624855111" target="_blank">
<img class="qr-code mb-8" src="../img/ios_code.png" alt="扫描下载,ios" />
<i class="txt-4001624 txt">扫描下载</i>
</a>
</li>
<li class="download-ul-item dow-animate-box" style="--delay: 0.1s" onmouseover="handleMouseover(1)"
onmouseout="handleMouseout(1)">
<a class="normal" href="https://www.dootask.com/desktop/publish/latest?platform=android" target="_blank"
id="Android">
<img class="icon mb-8" src="../img/dow_android.svg" alt="Android" />
<i class="txt-4001624 txt">Android</i>
</a>
<a class="hover radius" id="winx64Link"
href="https://www.dootask.com/desktop/publish/latest?platform=android" target="_blank">
<img class="icon mb-8" src="../img/dow_icon.svg" alt="Android,下载" />
<i class="txt-4001624 txt">下载</i>
</a>
</li>
<li class="download-ul-item dow-animate-box" style="--delay: 0.2s" onmouseover="handleMouseover(2)"
onmouseout="handleMouseout(2)">
<div class="normal">
<img class="icon mb-8" src="../img/dow_mac.svg" alt="macOS" />
<i class="txt-4001624 txt">macOS</i>
</div>
<div class="hover radius">
<button class="btn btn-green mb-12 btn-padding" style="width: 70%">
<a class="chips-txt txt-4001418" id="arm64Link"
href="https://www.dootask.com/desktop/publish/latest?platform=mac&arch=arm64"
target="_blank">Apple Chips</a>
</button>
<button class="btn btn-green btn-padding" style="width: 70%">
<a class="chips-txt txt-4001418" id="x64Link"
href="https://www.dootask.com/desktop/publish/latest?platform=mac&arch=x64" target="_blank">Intel
Chips</a>
</button>
</div>
</li>
<li class="download-ul-item dow-animate-box" style="--delay: 0.3s" onmouseover="handleMouseover(3)"
onmouseout="handleMouseout(3)">
<p class="normal">
<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=win&arch=x64" target="_blank">
<img class="icon mb-8" src="../img/dow_icon.svg" alt="Windows,下载" />
<i class="txt-4001624 txt">下载</i>
</a>
</li>
</ul>
<a class="download-other-btn dow-animate-box" style="--delay: 0.5s"
href="https://www.dootask.com/desktop/publish/latest" target="_blank"><span>其他版本</span></a>
</div>
</div>
</div>
</header>
<!-- 菜单抽屉 -->
<div class="drawer">
<div class="drawer-t mb-36">
<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>
<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="../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="../zh/download.html">下载中心</a>
</li>
<li class="drawer-item" onclick="changeMenu()">
<a class="txt-4001620 txt" href="../zh/help.html">帮助中心</a>
</li>
<li class="drawer-item" onclick="changeMenu()">
<a class="txt-4001620 txt" href="../zh/privacy.html" target="_blank">隐私政策</a>
</li>
<li class="drawer-item" onclick="changeMenu()">
<a class="txt-4001620 txt" href="../../docs/index.html" target="_blank">API 文档</a>
</li>
</ol>
<div class="drawer-item" onclick="closeDraweHandle()">
<a class="txt-4001620 txt" href="../zh/price.html">服务价格</a>
</div>
<div class="drawer-item mb-16" onclick="closeDraweHandle()">
<a class="txt-4001620 txt" href="../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="../../manage/dashboard">立即体验</a>
</div>
</li>
</ul>
</div>
<!-- 内容区域 -->
<main>
<!-- 主要区域划分 -->
<section>
<article class="update">
<div class="update-con">
<div class="update-layout">
<div class="update-l">
<h1 class="txt-4003645 update-h1 mb-36">
更新日志
</h1>
<ul class="update-ul">
<li id="releases"></li>
<li>
<a href="../zh/log.html" class="more-item">
<h5 class="txt-4001624 more">
更多日志
</h5>
<img class="icon" src="../img/dow_arrow.svg" alt="更多日志" />
</a>
</li>
</ul>
</div>
<div class="update-r">
<img class="update-r-svg" id="dow_pic1" src="../img/light/zh_dow_pic1.png" alt="DooTask,下载中心" />
</div>
</div>
</div>
</article>
</section>
</main>
<!-- 页脚区域 -->
<footer>
<div class="footer-con">
<div class="footer-layout">
<div class="footer-l">
<a href="../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 mb-16">
<a class="txt-4001624 txt" href="../zh/help.html">帮助中心</a>
</li>
<li class="footer-ol-item mb-16">
<a class="txt-4001624 txt" href="../zh/privacy.html" target="_blank">隐私政策</a>
</li>
<li class="footer-ol-item">
<a class="txt-4001624 txt" href="../../docs/index.html" target="_blank">API
文档</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 footer_copyright">
<span>
Copyright © 2022-2023 DooTask. All rights reserved.
</span>
<div class="footer_beian" style="display: flex">
<img src="../img/beian.png" alt="" /><span style="padding-left: 3px">桂公网安备
45010802000393号</span>
</div>
<a class="footer_beian_a" href="http://beian.miit.gov.cn">桂ICP备2021003642号-5</a>
</div>
</div>
</footer>
<!-- 侧边导航 -->
<div id="nav_wrap"></div>
</div>
</body>
<script src="../js/common.js"></script>
<script src="//cdn.bootcdn.net/ajax/libs/axios/1.3.6/axios.js"></script>
<script>
const isMobile = "ontouchstart" in window;
const androidDOM = document.getElementById("Android");
const iosDOM = document.getElementById("ios");
// 判断是否为ios
const isIos = /iPad|iPhone|iPod/.test(window.navigator.userAgent);
// 判断是否为安卓
const isAndroid = /Android/.test(window.navigator.userAgent);
// 判断是否为windows
const isWindows = /Win64/.test(window.navigator.userAgent);
/* 下载应用的hover处理函数 */
const download = document.querySelector(".download-ul");
const downloadItems = download.querySelectorAll(".download-ul-item");
const handleMouseover = (val) => {
if (isIos || isAndroid) {
return;
} else {
downloadItems[val].children[0].style.display = "none";
downloadItems[val].children[1].style.display = "flex";
}
};
const handleMouseout = (val) => {
if (isIos || isAndroid) {
return;
} else {
downloadItems[val].children[0].style.display = "flex";
downloadItems[val].children[1].style.display = "none";
}
};
/* 对于ios与Android pc端点击时a链接直接跳转 移动端点击时需要阻止a链接直接跳转 */
androidDOM.addEventListener("click", function (e) {
if (isMobile) {
e.preventDefault();
}
});
iosDOM.addEventListener("click", function (e) {
if (isMobile) {
e.preventDefault();
}
});
// 对于不同类型的移动端进行处理
function movieHandle(flag = true) {
if (flag) {
downloadItems.forEach((item, index) => {
item.addEventListener("touchstart", function () {
if (index == 2 || index == 3) {
return showBox("当前终端不支持");
}
if (index == 0) {
if (isIos) {
window.location.href = item.children[0].href;
return;
}
return showBox("当前终端不支持");
}
if (index == 1) {
if (isAndroid) {
window.location.href = item.children[0].href;
return;
}
return showBox("当前终端不支持");
}
});
});
}
}
// 移动端
/* 显示/隐藏提示弹框 */
function showBox(text) {
const box = document.querySelector(".BulletBox");
box.style.display = "block";
box.innerHTML = text;
setTimeout(() => {
box.style.display = "none";
}, 1000);
}
// 是否是移动端
if (isMobile) {
if (isAndroid || isIos) {
movieHandle();
} else if (isWindows) {
movieHandle(false);
}
}
const localStorageHandle = (val) => {
localStorage.setItem("update_log_num", val);
window.location.href = "../zh/log.html";
};
const getItem = (key) => {
var record = JSON.parse(localStorage.getItem(key));
if (!record) return null;
if (new Date().getTime() > record.expired) {
localStorage.removeItem(key);
return null;
}
return record.value;
};
/* 滑动到可视区域执行动画 */
const boxes = document.querySelectorAll(".dow-animate-box");
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");
}
});
};
window.addEventListener("scroll", animateBoxes);
animateBoxes();
// 获取日志
const logsItem = getItem("logs_dowmload_zh");
const updates = document.getElementById("releases");
if (!logsItem) {
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;
let match;
const Versions = [];
while ((match = regex.exec(changelog)) !== null) {
Versions.push(match[1]);
}
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>
</li>
`;
})
.join("");
let record = {
value: releases,
expired: new Date().getTime() + 30 * 60 * 1000,
};
localStorage.setItem(
"logs_dowmload_zh",
JSON.stringify(record)
);
updates.innerHTML = releases;
})
.catch((err) => { });
} else {
updates.innerHTML = logsItem;
}
document.addEventListener("DOMContentLoaded", function () {
fetch("./sideNav.html")
.then((response) => response.text())
.then((data) => {
document.getElementById("nav_wrap").innerHTML = data;
// 回到顶部
const back_top_button =
document.getElementById("back_to_top");
window.addEventListener("scroll", () => {
if (
document.body.scrollTop > 20 ||
document.documentElement.scrollTop > 20
) {
back_top_button.style.display = "block";
} else {
back_top_button.style.display = "none";
}
});
back_top_button.addEventListener("click", () => {
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
// 检查页面加载时的滚动位置以决定是否显示回到顶部按钮
if (document.documentElement.scrollTop > 20) {
back_top_button.style.display = "block"; // 显示回到顶部按钮
}
let toolbarPhone = document.getElementById(
"side_toolbar_item_phone"
);
let tooltipPhone = document.getElementById(
"toolbar_tooltip_phone"
);
let toolbarWhtasapp = document.getElementById(
"side_toolbar_item_whtasapp"
);
let tooltipWhtasapp = document.getElementById(
"toolbar_tooltip_whtasapp"
);
let toolbarQrcode = document.getElementById(
"side_toolbar_item_qrcode"
);
let tooltipQrcode = document.getElementById(
"toolbar_tooltip_qrcode"
);
function toggleTooltip(dom) {
if (dom.style.display === "block") {
dom.style.display = "none";
} else {
dom.style.display = "block";
}
}
if (toolbarPhone) {
toolbarPhone.addEventListener("click", () => {
event.stopPropagation();
// 谷歌分析事件追踪
if (gtag) {
gtag("event", "click", {
event_category: "button",
event_label: "right_side_toolbar_phone",
});
}
toggleTooltip(tooltipPhone);
tooltipWhtasapp.style.display = "none";
tooltipQrcode.style.display = "none";
if (
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
navigator.userAgent
)
) {
window.location.href = "tel:0771-3164099";
}
});
}
if (toolbarWhtasapp) {
toolbarWhtasapp.addEventListener("click", () => {
event.stopPropagation();
// 谷歌分析事件追踪
if (gtag) {
gtag("event", "click", {
event_category: "button",
event_label: "right_side_toolbar_Whtasapp",
});
}
toggleTooltip(tooltipWhtasapp);
tooltipPhone.style.display = "none";
tooltipQrcode.style.display = "none";
});
}
if (toolbarQrcode) {
toolbarQrcode.addEventListener("click", () => {
event.stopPropagation();
// 谷歌分析事件追踪
if (gtag) {
gtag("event", "click", {
event_category: "button",
event_label: "right_side_toolbar_WeChat",
});
}
toggleTooltip(tooltipQrcode);
tooltipPhone.style.display = "none";
tooltipWhtasapp.style.display = "none";
});
}
});
});
</script>
<script src="../js/ad.js"></script>
</html>