fix some bug

This commit is contained in:
wjyLearn
2025-10-24 17:20:44 +08:00
parent 81ea36fdd8
commit 82268132e9
352 changed files with 33179 additions and 13515 deletions

View File

@@ -104,7 +104,7 @@ html,body
box-shadow: 0px 0px 3px #DCDCDC;
}
#HotModel_Search_Btn img
.searchBtn img
{
filter: brightness(78%);
}
@@ -137,24 +137,24 @@ html,body
filter: invert(1);
}
#HotModel_Search_Bar
.searchBar
{
border: 1px solid #5C5C5C;
background-color: #242428;
}
#HotModel_Search_InputArea
.searchInputArea
{
}
#HotModel_Search_Input
.searchInput
{
background-color: #242428;
caret-color: white;
color: #FFFFFF;
}
#HotModel_Search_Btn img
.searchBtn img
{
filter: invert(100%) brightness(100);
}
@@ -188,4 +188,17 @@ html,body
#HideBtn:hover
{
background-color: rgba(70, 70, 71, 1);
}
/*wiki.css*/
.topicBlock{
background-color: #000000;
}
.card{
background-color: #737373;
}
.topicCard{
background-color: #737373;
}

View File

@@ -162,7 +162,7 @@
}
/*-----Search Bar------*/
#HotModel_Search_Bar
.searchBar
{
display: none;
align-items: center;
@@ -174,7 +174,7 @@
height: 40px;
}
#HotModel_Search_InputArea
.searchInputArea
{
display: flex;
align-items: center;
@@ -183,7 +183,7 @@
border-radius: 22px 0px 0px 22px;
}
#HotModel_Search_Input
.searchInput
{
height: 30px;
flex-grow: 1;
@@ -193,7 +193,7 @@
}
#HotModel_Search_Btn
.searchBtn
{
width: 60px;
height: 100%;

View File

@@ -0,0 +1,281 @@
html{
padding-top: 28px !important;
padding-bottom: 0 !important;
padding-left: 0 !important;
padding-right: 0 !important;
}
body{
max-width: none !important;
}
/* -----------searchBlock----------- */
.searchBlock{
height: 60px;
padding: 0 88px;
position: relative;
}
.searchBar{
display: flex;
align-items: center;
border-radius: 22px;
border: 1px solid #C2C2C2;
flex-grow: 1;
background-color: #F7F7F7;
height: 40px;
}
.searchBtn{
width: 60px;
height: 100%;
border-radius: 0px 22px 22px 0px;
display: flex;
align-items: center;
justify-content: center;
}
.searchInputArea{
display: flex;
align-items: center;
flex-grow: 1;
padding: 0px 22px 0px 0px;
border-radius: 22px 0px 0px 22px;
}
.searchInput{
height: 30px;
flex-grow: 1;
outline: none;
font-size: 16px;
background-color: #F7F7F7;
}
.searchResultArea{
width: calc(100% - 176px);
max-height: 300px;
overflow-y: auto;
background-color: #FFFFFF;
position: absolute;
left: 88px;
right: 0; /* 与输入框同宽 */
top: calc(100% - 6px);
z-index: 2;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
}
.searchResult{
height: 30px;
border-bottom: #C2C2C2 1px solid;
line-height: 30px;
padding: 0px 16px;
}
.searchResult:hover{
background-color: #F0F0F0;
cursor: pointer;
}
/* -----------academyBlock----------- */
.academyBlock{
position: relative;
padding-left: 48px;
}
.titleBlock{
display: flex;
padding-right: 48px;
}
.title {
font-size: 24px;
font-weight: bold;
flex-grow: 1;
}
.more {
font-size: 16px;
cursor: pointer;
}
.academyContent{
margin-top: 20px;
height: 268px;
display: flex;
align-items: center;
position: relative;
overflow: hidden;
}
.cardContent{
display: flex;
height: 100%;
gap: 16px;
align-items:center;
}
.card {
width: 240px;
height: 100%;
border-radius: 12px;
background-color: #F8F8F8;
box-sizing: border-box;
padding: 36px 39px;
cursor: pointer;
}
.cardImg {
width: 162px;
}
.cardTitle {
font-weight: bold;
text-align: center;
}
.switchBlock{
position: absolute;
margin-top: 20px;
width: calc(100% - 48px);
z-index: 1;
display: flex;
justify-content: space-between;
align-items: center;
height: 268px;
pointer-events: none;
}
/*share*/
.leftSwitch{
transform: rotate(180deg);
}
.leftSwitch:active { transform: rotate(180deg) translateY(-1px); }
.rightSwitch:active { transform: translateY(1px); }
/*share*/
.switchBtn{
width: 40px;
height: 40px;
background-image: url("../img/switch_page.svg");
background-repeat: no-repeat;
background-position: center center;
background-clip: content-box;
background-size: cover;
cursor: pointer;
opacity: 0.2;
pointer-events: auto;
}
.switchBtn:hover{
opacity: 1;
}
/* -----------tutorialBlock----------- */
.tutorialBlock{
margin-top: 48px;
position: relative;
padding-left: 48px;
}
.tutorialContent{
margin-top: 20px;
height: 290px;
display: flex;
align-items: center;
position: relative;
overflow: hidden;
}
.videoCard{
width: 352px;
height: 100%;
box-sizing: border-box;
cursor: pointer;
}
.videoThumbnail{
width: 352px;
}
.tutorialSwitchBlock{
position: absolute;
margin-top: 20px;
width: calc(100% - 48px);
z-index: 1;
display: flex;
justify-content: space-between;
align-items: center;
height: 290px;
pointer-events: none;
}
/* -----------topicBlock----------- */
.topicBlock{
padding: 48px 48px;
background-color: #F8F8F8;
margin-top: 48px;
}
.topicContent{
display: flex;
flex-wrap: wrap;
margin-top: 20px;
gap: 12px;
}
.topicCard{
padding: 24px 24px;
flex: 1 1 300px;
min-width: 600px;
background-color: #FFFFFF;
box-sizing: border-box;;
}
.topicTitle{
font-size: 20px;
font-weight: bold;
}
ul{
margin-top: 18px;
padding-left: 18px;
}
li {
color: #4479fb;
cursor: pointer;
}
/* -----------footerBlock----------- */
.footerBlock{
width: 100%;
aspect-ratio: 2536 / 416;
background-image: url("../img/wiki_bottom_banner.png");
background-repeat: no-repeat;
background-position: center center;
background-clip: content-box;
background-size: cover;
position: relative;
}
.rabbit{
width: 18%;
position: absolute;
bottom: 10%;
right: 20%;
}
.bannerContent{
height: 100%;
width: 50%;
padding: 32px 54px;
box-sizing: border-box;
}
.bannerTitle{
font-size: 20px;
font-weight: bold;
}
.bannerBtn{
border: 1px solid #000000;
border-radius: 3px;
padding: 10px 45px;
display: inline-block;
cursor: pointer;
margin-top: 24px;
}

View File

@@ -14,7 +14,8 @@
<link rel="stylesheet" type="text/css" href="./css/dark.css" />
<script type="text/javascript" src="../include/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../include/json2.js"></script>
<script type="text/javascript" src="../include/json2.js"></script>
<script type="text/javascript" src="../include/purify.min.js"></script>
<script type="text/javascript" src="../include/globalapi.js"></script>
<script type="text/javascript" src="../data/text.js"></script>
@@ -33,12 +34,12 @@
<img src="img/project_new.svg" /><span class="trans" tid='t32'>Create new project</span>
</div>
</div>
<div id="HotModel_Search_Bar">
<div id="HotModel_Search_Btn" >
<div id="HotModel_Search_Bar" class="searchBar">
<div id="HotModel_Search_Btn" class="searchBtn">
<img src="img/search.svg" />
</div>
<div id="HotModel_Search_InputArea">
<input id="HotModel_Search_Input" maxlength="1000" placeholder="" />
<div id="HotModel_Search_InputArea" class="searchInputArea">
<input id="HotModel_Search_Input" class="searchInput" maxlength="1000" placeholder="" />
</div>
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1758367827282" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7546" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512 64c249.856 0 448 198.656 448 448s-198.656 448-448 448-448-198.144-448-448S262.656 64 512 64M512 0C230.4 0 0 230.4 0 512s230.4 512 512 512 512-230.4 512-512S793.6 0 512 0z" p-id="7547" fill="#707070"></path><path d="M450.56 291.84c-10.24-10.24-30.72-10.24-46.08 0-10.24 10.24-10.24 30.72 0 46.08l179.2 179.2-184.32 184.32c-10.24 10.24-10.24 30.72 0 46.08 5.12 5.12 15.36 10.24 20.48 10.24s15.36-5.12 20.48-10.24l204.8-204.8c5.12-5.12 10.24-15.36 10.24-20.48 0-10.24-5.12-15.36-10.24-20.48L450.56 291.84z" p-id="7548" fill="#707070"></path></svg>

After

Width:  |  Height:  |  Size: 882 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 KiB

View File

@@ -330,10 +330,10 @@ function ShowRecentFileList( pList )
{
let OneFile=pList[n];
let sPath=OneFile['path'];
let sImg=OneFile["image"] || sImages[sPath];
let sPath=DOMPurify.sanitize(OneFile['path']);
let sImg=DOMPurify.sanitize(OneFile["image"]) || sImages[sPath];
let sTime=OneFile['time'];
let sName=OneFile['project_name'];
let sName=DOMPurify.sanitize(OneFile['project_name']);
sImages[sPath] = sImg;
//let index=sPath.lastIndexOf('\\')>0?sPath.lastIndexOf('\\'):sPath.lastIndexOf('\/');

View File

@@ -31,9 +31,9 @@ function HandleStudio( pVal )
if(strCmd=='studio_userlogin')
{
let lastLoginInfo = pVal;
var lastLoginInfo = pVal;
SetLoginInfo(pVal['data']['avatar'],pVal['data']['name']);
if (!m_GetPrintHistoryStatus) {
if (!m_GetPrintHistoryStatus && (pVal != lastLoginInfo)) {
SendMsg_GetPrintHistory();
}
SetLoginInfo(pVal['data']['avatar'],pVal['data']['name']);

View File

@@ -0,0 +1,591 @@
var cardData = [
{
"title": "Q2",
"img": "img/printer_q2.png",
"link": "Q2"
},
{
"title": "X-Plus 4",
"img": "img/printer_xplus4.png",
"link": "X-Plus4"
},
{
"title": "Q1 Pro",
"img": "img/printer_q1pro.png",
"link": "Q1-Pro"
},
{
"title": "X-Max 3",
"img": "img/printer_xmax3.png",
"link": "X-Max3"
},
{
"title": "X-Plus 3",
"img": "img/printer_xplus3.png",
"link": "X-Plus3"
},
{
"title": "X-Smart 3",
"img": "img/printer_xsmart3.png",
"link": "X-Smart3"
},
{
"title": "QIDI Studio",
"img": "img/QIDIStudio.png",
"link": "software/qidi-studio"
},
];
// var youtubeData = [
// {
// "id": "8TQCRVS72Us",
// "title": "Intro: Overview of Bambu Studio"
// },
// {
// "id": "AdHUVQiVeDI",
// "title": "Episode 1: Set Up Your Environment"
// },
// {
// "id": "LDrCjCPYbhE",
// "title": "Episode 2: Import 3D Printing Models"
// },
// {
// "id": "3MYKsbd7k0c",
// "title": "Episode 3: Adjust the Models to Be Printable - Part 1"
// },
// {
// "id": "KcMBajgOzS0",
// "title": "Episode 4: Adjust the Models to Be Printable - Part 2"
// },
// {
// "id": "4W4vczKsiX8",
// "title": "Episode 5: Setup for Filaments"
// },
// {
// "id": "lQ4ySwPQeY4",
// "title": "Episode 6: Color Models for Multi-Color Prints"
// },
// {
// "id": "3tft_Ahkd_w",
// "title": "Episode 7: Divide and Print Your Models on Multiple Plates"
// },
// {
// "id": "ZH9xqdQYXsI",
// "title": "Episode 8: The Basic Quality Settings"
// },
// {
// "id": "FRLympzHsWY",
// "title": "Episode 9: The Basic Strength Settings"
// },
// {
// "id": "1QJ2UKDamzc",
// "title": "Episode 10: The Basic Support Settings"
// },
// {
// "id": "EHZtnnQLtGs",
// "title": "Episode 11: The Basic Other Settings"
// },
// {
// "id": "DWna4Mwjs5c",
// "title": "Episode 12: Check Your Sliced Model in Preview"
// },
// {
// "id": "pnd1CZ-Dp34",
// "title": "Episode 13: Send a Print Job to Your Printer"
// },
// {
// "id": "SZCWxYeMZro",
// "title": "Episode 14: During the Print"
// },
// ];
var topicData = [
{
"title": "Quick Start",
"zhcn-title": "快速开始",
"children": [
{
"title": "QIDI Studio Quick Start Guide",
"zhcn-title": "QIDI Studio 快速上手教程",
"link": "software/qidi-studio/quick-guide"
},
{
"title": "Connect device and Fluidd",
"zhcn-title": "设备连接与Fluidd页面",
"link": "software/qidi-studio/fluidd"
},
// {
// "title": "QIDI Box使用教程",
// "zhcn-title": "QIDI Box User Guide",
// "link": "software/qidi-studio/use-box-guide"
// },
// {
// "title": "QIDI Studio Multi Plate Printing Guide",
// "zhcn-title": "QIDI Studio 多盘打印指南",
// "link": "software/qidi-studio/multi-plate-printing"
// },
]
},
{
"title": "Gizmo",
"zhcn-title": "顶部工具栏",
"children": [
{
"title": "Variable Layer Height",
"zhcn-title": "可变层高",
"link": "software/qidi-studio/toolbar/variable-layer-height"
},
{
"title": "Cut Tool",
"zhcn-title": "切割工具",
"link": "software/qidi-studio/toolbar/cut-tool"
},
{
"title": "Auto Orientation",
"zhcn-title": "自动朝向",
"link": "software/qidi-studio/toolbar/autoOrient"
},
{
"title": "Split to Objects/Parts",
"zhcn-title": "拆分为对象/零件",
"link": "software/qidi-studio/toolbar/split-obj-part"
},
{
"title": "Support Painting Guide",
"zhcn-title": "支撑绘制",
"link": "software/qidi-studio/toolbar/support-paint-guide"
},
{
"title": "3D Text",
"zhcn-title": "添加 3D 文本",
"link": "software/qidi-studio/toolbar/3dtext"
}
]
},
{
"title": "Right-click Tool",
"zhcn-title": "右键工具",
"children": [
{
"title": "Fix Model",
"zhcn-title": "修复模型",
"link": "software/qidi-studio/toolbar/fix-model"
},
{
"title": "Simplify Model",
"zhcn-title": "简化模型",
"link": "software/qidi-studio/toolbar/simplify-model"
},
{
"title": "Negative Part",
"zhcn-title": "负零件",
"link": "software/qidi-studio/toolbar/negative-part"
},
{
"title": "Modifier Operation Guide",
"zhcn-title": "修改器操作指南",
"link": "software/qidi-studio/toolbar/add-modify"
}
]
},
// {
// "title": "Multi-material Printing",
// "zhcn-title": "多材料打印",
// "children": [
// {
// "title": "Multi-Color Printing",
// "zhcn-title": "多色打印指南",
// "link": "software/qidi-studio/multi-color-printing/multi-color-printing"
// },
// {
// "title": "Color Painting Tool",
// "zhcn-title": "涂色工具使用指南",
// "link": "software/qidi-studio/multi-color-printing/color-painting-tool"
// },
// {
// "title": "Reduce Waste during Filament Change",
// "zhcn-title": "减少多色打印时的材料浪费",
// "link": "software/qidi-studio/multi-color-printing/reduce-wasting-during-filament-change"
// },
// ]
// },
{
"title": "Print Settings",
"zhcn-title": "打印设置",
"children": [
// {
// "title": "Special Slicing Mode in Bambu Studio",
// "zhcn-title": "Bambu Studio 特殊切片模式",
// "link": "software/bambu-studio/special-slicing-modes"
// },
{
"title": "How to Create Custom Preset",
"zhcn-title": "创建自定义预设",
"link": "software/qidi-studio/print-settings/custom-filament"
},
{
"title": "Seam Settings",
"zhcn-title": "接缝设置",
"link": "software/qidi-studio/print-settings/seam"
},
{
"title": "Support settings in Bambu Studio",
"zhcn-title": "支撑耗材与支撑功能的介绍",
"link": "software/qidi-studio/print-settings/support"
},
{
"title": "Brim",
"zhcn-title": "Brim",
"link": "software/qidi-studio/print-settings/brim"
},
]
},
{
"title": "Calibration",
"zhcn-title": "流量校准",
"children": [
// {
// "title": "Flow Rate Calibration",
// "zhcn-title": "流量比例",
// "link": "software/bambu-studio/calibration_flow_rate"
// },
// {
// "title": "Flow Dynamics Calibration",
// "zhcn-title": "动态流量校准",
// "link": "software/bambu-studio/calibration_pa"
// }
{
"title": "Calibration",
"zhcn-title": "校准",
"link": "software/qidi-studio/calibration"
}
]
},
{
"title": "Troubleshooting",
"zhcn-title": "故障排除",
"children": [
{
"title": "Failed to send print files or failed to connect printer",
"zhcn-title": "无法发送打印文件或无法连接打印机",
"link": "software/qidi-studio/troubleshooting/connect-send-problem"
},
{
"title": "QIDI Studio crashes/freezes troubleshooting guide",
"zhcn-title": "QIDI Studio 崩溃/冻结故障排除指南",
"link": "software/qidi-studio/troubleshooting/crash_freeze_guide"
},
{
"title": "Export QIDI Studio software log",
"zhcn-title": "导出QIDI PC软件日志",
"link": "software/qidi-studio/troubleshooting/export-logs"
}
]
}
];
var $prev;
var $next;
var video_prev;
var video_next;
function OnInit() {
createCardHTML();
createVideoHTML();
if (IsChinese())
$("#tutorial_block").hide();
createTopicHTML();
TranslatePage();
$prev = $('#academy_Left_Btn');
$next = $('#academy_Right_Btn');
$prev.on('click', () => scrollByStep(-1));
$next.on('click', () => scrollByStep(+1));
$('#academy_content').on('scroll', updateButtons);
$(window).on('resize', updateButtons);
updateButtons();
$video_prev = $('#tutorial_Left_Btn');
$video_next = $('#tutorial_Right_Btn');
$video_prev.on('click', () => scrollVideoByStep(-1));
$video_next.on('click', () => scrollVideoByStep(+1));
$('#tutorial_content').on('scroll', updateVideoButtons);
$(window).on('resize', updateVideoButtons);
updateVideoButtons();
$("#Wiki_Search_Input").on("input", debounce(function() {
let keyword = $(this).val();
searchWiki(keyword);
}, 500));
$("#Wiki_Search_Input").on("focus", function () {
if (this.value.trim().length) {
$(this).trigger("input");
}
});
// $(".searchResult").on("click", function(e) {
// console.log(e);
// });
$(document).on('click', function (e) {
if (!$(e.target).closest('.search').length) {
$('#search_result_area').empty();
}
});
}
function debounce(fn, delay){
let t;
return function(...args){
clearTimeout(t);
t = setTimeout(() => fn.apply(this, args), delay);
};
}
// search
function searchWiki(keyword) {
var tSend={};
tSend['sequence_id']=Math.round(new Date() / 1000);
tSend['command']="search_wiki";
tSend['data']={};
tSend['data']['keyword']=keyword;
SendWXMessage( JSON.stringify(tSend) );
}
function updateSearchResult(result) {
let data = result["pages"]["search"];
$('#search_result_area').empty();
if (data["totalHits"] > 0) {
data["results"].forEach(element => {
if (IsChinese()) {
if (element["locale"] != "zh")
return;
}else {
if (element["locale"] != "en")
return;
}
let html = `<div class="searchResult" onclick="openWikiUrl('${element.path}')">${element.title}</div>`;
$('#search_result_area').append(html);
});
}
}
//--------------- Academy Cards -------------------
function createCardHTML() {
for (let i = 0; i < cardData.length; i++) {
let html = `<div class="card" data-idx="${i}" onclick="openAcademyUrl('${cardData[i].link}')">
<img class="cardImg" src="${cardData[i].img}" />
<div class="cardTitle">${cardData[i].title}</div>
</div>`;
$('#academy_Card_Content').append(html)
}
}
function stepCardSize() {
const $first = $('#academy_Card_Content').children().first();
if ($first.length === 0) return 0;
let gap = 16;
return $first.outerWidth(true) + gap;
}
function maxScrollLeft() {
var a = $('#academy_Card_Content').outerWidth(true);
var b = $('#academy_content').innerWidth();
return Math.max(0, $('#academy_Card_Content').outerWidth(true) - $('#academy_content').innerWidth());
}
function clampScroll(x) {
const max = maxScrollLeft();
return Math.min(Math.max(0, x), max);
}
function updateButtons() {
const x = Math.round($('#academy_content').scrollLeft());
const max = Math.round(maxScrollLeft());
$prev.prop('disabled', x <= 0);
$next.prop('disabled', x >= max);
}
function scrollByStep(dir) {
const step = stepCardSize();
if (!step) return;
const current = $('#academy_content').scrollLeft();
const target = clampScroll(current + dir * step);
$('#academy_content').stop(true, false).animate({ scrollLeft: target }, 260, 'swing', updateButtons);
}
function openAcademyUrl(path)
{
let open_url = "";
if (IsChinese()){
open_url = "https://wiki.qidi3d.com/zh/";
}else{
let strLang=langStringTransfer();
open_url = "https://wiki.qidi3d.com/en/";
}
open_url += path;
OpenUrlInLocalBrowser(open_url);
}
// ---------------- Tutorials -------------------
function createVideoHTML() {
// let academyData = youtubeData;
// for (let i = 0; i < academyData.length; i++) {
// let html = `<div class="videoCard" onclick="openVideoUrl('${academyData[i].id}')">
// <img class="videoThumbnail" src="img/${academyData[i].id}.jpg" />
// <div class="videoTitle TextS1">${academyData[i].title}</div>
// </div>`;
// $('#tutorial_Card_Content').append(html)
// }
}
function stepVideoCardSize() {
const $first = $('#tutorial_Card_Content').children().first();
if ($first.length === 0) return 0;
let gap = 16;
return $first.outerWidth(true) + gap;
}
function maxVideoScrollLeft() {
var a = $('#tutorial_Card_Content').outerWidth(true);
var b = $('#tutorial_content').innerWidth();
return Math.max(0, $('#tutorial_Card_Content').outerWidth(true) - $('#tutorial_content').innerWidth());
}
function videoClampScroll(x) {
const max = maxVideoScrollLeft();
return Math.min(Math.max(0, x), max);
}
function updateVideoButtons() {
const x = Math.round($('#tutorial_content').scrollLeft());
const max = Math.round(maxVideoScrollLeft());
$video_prev.prop('disabled', x <= 0);
$video_next.prop('disabled', x >= max);
}
function scrollVideoByStep(dir) {
const step = stepVideoCardSize();
if (!step) return;
const current = $('#tutorial_content').scrollLeft();
const target = videoClampScroll(current + dir * step);
$('#tutorial_content').stop(true, false).animate({ scrollLeft: target }, 260, 'swing', updateVideoButtons);
}
function openVideoUrl(path)
{
let open_url = "https://www.youtube.com/watch?v=";
open_url += path;
OpenUrlInLocalBrowser(open_url);
}
// ---------------- topic -------------------
function createTopicHTML() {
for (let i = 0; i < topicData.length; i++) {
let title;
if (IsChinese()){
title = topicData[i]['zhcn-title'];
} else {
title = topicData[i].title;
}
let html = `<div class="topicCard">
<div class="topicTitle">${title}</div>
<ul>`
for (let j=0; j < topicData[i].children.length; j++) {
let child_title;
if (IsChinese()){
child_title = topicData[i].children[j]['zhcn-title'];
} else {
child_title = topicData[i].children[j].title;
}
html += `<li onclick="openWikiUrl('${topicData[i].children[j].link}')">${child_title}</li>`;
}
html += `</ul></div>`;
$('#topic_content').append(html)
}
}
function openWikiUrl(path)
{
let open_url = "https://wiki.qidi3d.com/"
if (IsChinese()){
open_url += "zh/";
}else{
open_url += "en/";
}
open_url += path;
var tSend={};
tSend['sequence_id']=Math.round(new Date() / 1000);
tSend['command']="userguide_wiki_open";
tSend['data']={};
tSend['data']['url']=open_url;
SendWXMessage( JSON.stringify(tSend) );
}
// --------------------common ----------------
function IsChinese()
{
let strLang=GetQueryString("lang");
if(strLang!=null)
{}else{
strLang=localStorage.getItem(LANG_COOKIE_NAME);
}
if(strLang!=null)
return strLang.includes('zh')
else
return false;
}
function langStringTransfer()
{
let strLang=GetQueryString("lang");
if(strLang==null)
strLang=localStorage.getItem(LANG_COOKIE_NAME);
if(strLang.includes('zh')){
return 'zh';
}else if(strLang.includes('en')){
return 'en';
}else if(strLang.includes('fr')){
return 'fr-fr';
}else if(strLang.includes('de')){
return 'de-de';
}else if(strLang.includes('es')){
return 'es-mx';
}else if(strLang.includes('it')){
return 'it-it';
}else if(strLang.includes('ja')){
return 'ja-jp';
}else if(strLang.includes('ko')){
return 'ko-kr';
}else if(strLang.includes('pt')){
return 'pt-br';
}else if(strLang.includes('nl')){
return 'nl-nl';
}else{
return 'en';
}
}
function HandleStudio( pVal )
{
let strCmd = pVal['command'];
if(strCmd=='search_wiki_get')
{
updateSearchResult(pVal['data']);
}
}
//---------------Global-----------------
window.postMessage = HandleStudio;

View File

@@ -0,0 +1,107 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<title>wiki</title>
<link rel="stylesheet" type="text/css" href="./css/common.css" />
<link rel="stylesheet" type="text/css" href="./css/rightcommon.css" />
<link rel="stylesheet" type="text/css" href="./css/wiki.css" />
<link rel="stylesheet" type="text/css" href="./css/dark.css" />
<script type="text/javascript" src="../include/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../include/json2.js"></script>
<script type="text/javascript" src="../include/globalapi.js"></script>
<script type="text/javascript" src="../data/text.js"></script>
<script type="text/javascript" src="js/wiki.js"></script>
</head>
<body onLoad="OnInit()">
<div class="searchBlock">
<div id="Wiki_Search_Bar" class="searchBar">
<div id="Wiki_Search_Btn" class="searchBtn">
<img src="img/search.svg" />
</div>
<div id="Wiki_Search_InputArea" class="searchInputArea">
<input id="Wiki_Search_Input" class="searchInput" maxlength="1000" placeholder="" />
</div>
<div id="search_result_area" class="searchResultArea">
<!-- <div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div>
<div class="searchResult">title</div> -->
</div>
</div>
</div>
<div class="academyBlock">
<div class="titleBlock">
<div class="title trans TextS1" tid="wk17">QIDI Tech Academy</div>
<div class="more TextS1" onclick="openAcademyUrl('support/academy')"><span class="trans" tid="t108">MORE</span> ></div>
</div>
<div class="switchBlock">
<div id="academy_Left_Btn" class="leftSwitch switchBtn"></div>
<div id="academy_Right_Btn" class="rightSwitch switchBtn"></div>
</div>
<div id="academy_content" class="academyContent">
<div id="academy_Card_Content" class="cardContent">
</div>
</div>
</div>
<!--div class="tutorialBlock" id="tutorial_block">
<div class="titleBlock">
<div class="title trans TextS1" tid="wk18">Quick Start Tutorial</div>
<div class="more TextS1" onclick="OpenUrlInLocalBrowser('https://www.youtube.com/playlist?list=PLFUVS59deIm2mawl3Zjk1XI9yp7H7955J')"><span class="trans" tid="t108">MORE</span> ></div>
</div>
<div class="tutorialSwitchBlock">
<div id="tutorial_Left_Btn" class="leftSwitch switchBtn"></div>
<div id="tutorial_Right_Btn" class="rightSwitch switchBtn"></div>
</div>
<div id="tutorial_content" class="tutorialContent">
<div id="tutorial_Card_Content" class="cardContent">
< <div class="videoCard">
<div class="videoThumbnail" style="width: 352px;height:264px;background-color: aquamarine;"> </div>
<div class="videoTitle">Intro: Overview of QIDI Studio</div>
</div>>
</div>
</div>
</div> -->
<div class="topicBlock">
<div class="titleBlock">
<div class="title trans TextS1" tid="wk19">Learn by Topic</div>
<div class="more TextS1" onclick="openWikiUrl('qidi-studio')"><span class="trans" tid="t108">MORE</span> ></div>
</div>
<div id="topic_content" class="topicContent">
<!-- <div class="topicCard">
<div class="topicTitle">Quick Start</div>
<ul>
<li>QIDI Studio Quick Start Guide</li>
<li>Remote Control & Monitoring</li>
<li>Multi-Color Printing</li>
</ul>
</div> -->
</div>
</div>
<div class="footerBlock">
<!-- <img class="rabbit" src="img/wiki_bottom_banner_2.png" /> -->
<div class="bannerContent">
<div class="bannerTitle trans" tid="wk20">Filament Guide</div>
<!-- <div class="bannerText">Perhaps there are a few too many old ideas baked into Perhamany old ideas baked into </div> -->
<div class="bannerBtn trans" onclick="openAcademyUrl('Memo/Filament-Guide')" tid="wk21">Explore now</div>
</div>
</div>
</body>
</html>