update resources

This commit is contained in:
QIDI TECH
2025-05-05 14:58:54 +08:00
parent 524bd808f3
commit 3fe258372a
566 changed files with 7708 additions and 5046 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,672 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<style>
html, body {
margin: 0px;
padding: 0px;
height: 100%;
background: #f5f5f5;
font-family: sans-serif;
}
.container {
background: #fff;
padding: 20px;
padding-bottom: 10px;
border: 1px solid #ccc;
max-width:fit-content(1000px);
margin: 0 auto;
}
.tip-panel {
background: #eeeeee;
padding: 10px;
margin-bottom: 10px;
font-size: 12px;
}
.scroll-container {
max-width: 100%;
max-height: 500px;
overflow: auto;
border: 1px solid #ccc;
position: relative;
margin: 0px;
}
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid #ccc;
text-align: center;
padding: 2px;
position: relative;
width: 40px;
height: 25px;
}
thead th {
position: sticky;
top: 0;
background: #eee;
z-index: 10;
}
tbody th {
position: sticky;
left: 0;
background: #eee;
z-index: 9;
}
tbody tr:nth-child(even) {
background: #ffffff;
}
tbody tr:nth-child(odd) {
background: #eeeeee;
}
tbody td:first-child,
thead th:first-child {
position: sticky;
top: 0;
left: 0;
background: #eee;
z-index: 11;
}
.icon-button {
display: inline-block;
width: 16px;
height: 16px;
border: 1px solid #999;
text-align: center;
line-height: 15px;
color: #fff;
font-weight: bold;
font-size: 12px;
border-radius: 4px;
cursor: default;
user-select: none;
padding: 1px;
}
input[type="number"].table-input {
width: 30px;
height: 20px;
text-align: center;
-moz-appearance: textfield;
appearance: textfield;
border: none;
background-color: inherit;
}
input[type="number"].table-input::-webkit-inner-spin-button,
input[type="number"].table-input::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"].multiplier-input {
width: 60px;
}
body.dark-mode input[type="number"].multiplier-input {
width: 60px;
background-color: #4c4c55;
color: white;
}
.warning-text {
color: red;
font-size: 12px;
}
.normal-text {
color: black;
font-size: 12px;
}
.icon-gap {
width: 10px;
display: inline-block;
}
.btn {
display: inline-block;
padding: 6px 9px;
border: 2px solid transparent;
border-radius: 12px;
font-size: 12px;
text-align: center;
cursor: pointer;
transition: all 0.3s;
}
.btn-ok {
color: #fff;
background-color: #4479fb;
}
.btn-ok:hover {
background-color: #3d97cb;
}
.btn-cancel {
color: black;
background-color: white;
border: 1px solid black;
}
.btn-cancel:hover {
background-color: #eeeeee;
}
body.dark-mode button.btn-cancel {
background-color: #2d2d31;
color: #e0e0e0;
border: 1px solid #e0e0e0;
}
select {
padding: 6px 9px;
border: 1px solid #dbdbdb;
border-radius: 3px;
font-size: 12px;
cursor: pointer;
appearance: auto;
background-color: white;
color: black;
}
select option {
background-color: white;
color: black;
}
select:hover,
select:focus {
outline: none;
border-color: #4479fb;
background-color: #D0E0FF;
}
.button-container {
display: flex;
justify-content: center;
gap: 10px;
margin: 10px;
}
/* 暗色模式样式 */
body.dark-mode {
background-color: #2d2d31;
color: #e0e0e0;
}
body.dark-mode .container {
background: inherit;
border-color: #2d2d31;
}
body.dark-mode .tip-panel {
background: #4c4c55;
color: #ccc;
}
body.dark-mode .scroll-container {
border-color: #4c4c55;
}
body.dark-mode table {
background: inherit;
border-color: #4c4c55;
}
body.dark-mode input[type="number"].table-input {
width: 30px;
height: 20px;
text-align: center;
-moz-appearance: textfield;
appearance: textfield;
border: none;
color: #e0e0e0;
background-color: inherit;
}
body.dark-mode th, body.dark-mode td {
background: inherit;
border-color: #555;
color: #e0e0e0;
}
body.dark-mode thead th{
position: sticky;
z-index: 10
}
body.dark-mode tbody th{
position: sticky;
z-index: 9
}
body.dark-mode tbody tr:nth-child(even) {
background: #2d2d31;
}
body.dark-mode tbody tr:nth-child(odd) {
background: #4c4c55;
}
body.dark-mode tbody td:first-child,
body.dark-mode thead th:first-child {
position: sticky;
z-index: 11;
}
body.dark-mode .btn-ok {
background-color: #3a8f44;
}
body.dark-mode .btn-dark {
background-color: #34495e;
}
body.dark-mode select {
background-color: #2d2d31;
color: white;
border-color: #4c4c55;
}
body.dark-mode .warning-text {
color: #f44336;
}
body.dark-mode .normal-text {
color: #e0e0e0;
}
body.dark-mode .icon-button {
background-color: #4c4c55;
}
</style>
</head>
<body>
<div class="container">
<div class="tip-panel" id="auto_flush_tip">
Studio would re-calculate your flushing volumes every time the filament
color changed or filaments changed. You could disable the auto-calculate
in QIDI Studio &gt; Preferences.
</div>
<div style="margin-bottom: 10px; ">
<button
class="btn btn-ok"
onclick="calcFlushingVolumes()"
id="calc_btn"
>
Re-Calculate
</button>
<select
id="extruders"
onchange="handleExtruderSelect(document.getElementById('extruders').value)"
>
<option value="left" id="extruder_label_0">Left Nozzle</option>
<option value="right" id="extruder_label_1">Right Nozzle</option>
</select>
</div>
<div class="scroll-container">
<table id="flushTable">
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<div style="margin-top: 10px;">
<div id="volume_desp_panel" class="normal-text">
Flushing volume (mm³) for each filament pair.
</div>
<div
id="volume_range_panel"
class="normal-text"
style="margin-top: 5px;"
>
Suggestion: Flushing Volume in range [50, 999]
</div>
<div style="margin-top: 8px;">
<label
for="multiplierInput"
id="multiplier_label"
style="font-size: 12px;"
>Multiplier</label
>
<input
type="number"
step="0.1"
id="multiplierInput"
class="multiplier-input"
value="1.00"
oninput="onMultiplierChange()"
/>
</div>
<div
style="margin-top: 5px; margin-bottom: 5px; color: #666; font-size: 12px;"
id="multiplier_range_panel"
>
The multiplier should be in range [0.50, 3.00].
</div>
</div>
<div class="button-container" style="padding: 0px; margin: 0px;">
<button class="btn btn-ok" id="ok_btn" style="width: 60px; height: 30px; font-size: 12px; text-align: center;" onclick="storeData()">
Save
</button>
<button class="btn btn-cancel" id="cancel_btn" style="width: 60px; height: 30px; font-size: 12px; text-align: center;" onclick="quit()">
Cancel
</button>
</div>
</div>
<script>
let m_number_of_filaments // 材料数量
let m_number_of_extruders // 喷嘴数量
let m_colours // 颜色
let m_display_matrix // 显示的矩阵
let m_raw_matrix // 原始数据
let m_flush_multipiers // 冲刷系数
let m_cell_inputs = []; //显示的内容
let m_curr_extruder_id = 0
let m_min_flush_volumes = []
let m_max_flush_volumes = []
let m_min_flush_multiplier = 0.50
let m_max_flush_multiplier = 3
function storeData() {
var data = JSON.stringify({
msg: 'storeData',
number_of_extruders: m_number_of_extruders,
raw_matrix: m_raw_matrix,
flush_multiplier: m_flush_multipiers
})
window.wipingDialog.postMessage(data);
}
function quit() {
var data = JSON.stringify({
msg: 'quit'
})
window.wipingDialog.postMessage(data);
}
function calcFlushingVolumes() {
var data = JSON.stringify({
msg: 'updateMatrix',
extruder_id: m_curr_extruder_id
})
window.wipingDialog.postMessage(data);
}
function updateTable(dataMatrix, extruder_id) {
for (let i = 0; i < m_number_of_filaments; i++) {
for (let j = 0; j < m_number_of_filaments; j++) {
var newValue
var index = m_number_of_filaments * i + j
newValue = (i == j ? 0 : rawToDislay(dataMatrix[index] ,m_flush_multipiers[extruder_id]))
newValue = limitDisplayVal(newValue,extruder_id)
m_cell_inputs[i][j].value = newValue;
m_display_matrix[index] = newValue;
m_raw_matrix[extruder_id][index] = dataMatrix[index]
}
}
updateWarningTexts();
}
// const virtual_data = {
// filament_colors: [
// '#123456', '#7890AB', '#CDEF01', '#F1A2B3', '#4D8B72', '#D9E1F2', '#B76C8C', '#A9C3D3',
// '#FF5733', '#33FF57', '#5733FF', '#FF33FF', '#FFFF33', '#33FFFF', '#FF5733', '#3333FF'
// ],
// extruder_num: 2,
// flush_volume_matrixs: [
// Array.from({ length: 256 }, () => Math.floor(Math.random() * 1000)),
// Array.from({ length: 256 }, () => Math.floor(Math.random() * 1000))
// ],
// flush_multiplier:[1,1]
// }
window.addEventListener("DOMContentLoaded",function(){
var data = JSON.stringify({
msg: 'init',
})
window.wipingDialog.postMessage(data);
});
function buildText(data) {
document.getElementById('volume_desp_panel').innerText = data.volume_desp_panel
document.getElementById('volume_range_panel').innerText = data.volume_range_panel
document.getElementById('multiplier_range_panel').innerText = data.multiplier_range_panel
document.getElementById('auto_flush_tip').innerText = data.auto_flush_tip
document.getElementById('calc_btn').innerText = data.calc_btn_panel
document.getElementById('extruder_label_0').innerText = data.extruder_label_0
document.getElementById('extruder_label_1').innerText = data.extruder_label_1
document.getElementById('multiplier_label').innerText = data.multiplier_label
document.getElementById('ok_btn').innerText = data.ok_btn_label
document.getElementById('cancel_btn').innerText = data.cancel_btn_label
updateVolumeRange(m_min_flush_volumes[m_curr_extruder_id],m_max_flush_volumes[m_curr_extruder_id])
updateMultiplierRange(m_min_flush_multiplier,m_max_flush_multiplier)
}
// 计算亮度
function getLuminance(color) {
const hex = color.replace(/^#/, '');
const r = parseInt(hex.slice(0, 2), 16);
const g = parseInt(hex.slice(2, 4), 16);
const b = parseInt(hex.slice(4, 6), 16);
return (0.299 * r + 0.587 * g + 0.114 * b) / 255;
}
function updateVolumeRange(min_volume,max_volume){
const panel = document.getElementById('volume_range_panel');
panel.innerText = panel.innerText.replace(/\[.*\]/, `[${min_volume}, ${max_volume}]`);
}
function updateMultiplierRange(min_multiplier,max_multiplier){
const panel = document.getElementById('multiplier_range_panel');
panel.innerText = panel.innerText.replace(/\[.*\]/, `[${min_multiplier}, ${max_multiplier}]`);
}
function updateFlushMultiplier(extruder_id){
document.getElementById("multiplierInput").value = m_flush_multipiers[extruder_id]
}
function rawToDislay(val, ratio){
return Math.round(val * ratio)
}
function displayToRaw(val, ratio){
if(ratio==0)
return 0
else
return Math.round(val / ratio)
}
function limitDisplayVal(val,extruder_id){
if (isNaN(val))
return 0
if (val < 0)
return 0
if (val > m_max_flush_volumes[extruder_id])
return m_max_flush_volumes[extruder_id];
return val
}
function buildTable(data) {
m_colours = data.filament_colors
m_number_of_extruders = data.extruder_num
m_number_of_filaments = data.filament_colors.length
m_display_matrix = data.flush_volume_matrixs[0].slice();
m_raw_matrix = data.flush_volume_matrixs.map(function(arr) {
return arr.slice();
});
m_flush_multipiers = data.flush_multiplier.slice()
m_max_flush_volumes = data.max_flush_volumes
m_min_flush_volumes = data.min_flush_volumes
m_min_flush_multiplier = data.min_flush_multiplier
m_max_flush_multiplier = data.max_flush_multiplier
if(data.is_dark_mode == true)
document.body.classList.add('dark-mode');
updateFlushMultiplier(m_curr_extruder_id)
const selectElement = document.getElementById('extruders');
if (m_number_of_extruders > 1) {
selectElement.style.display = 'inline-block';
} else {
selectElement.style.display = 'none';
}
var thead = document.querySelector("#flushTable thead tr");
var tbody = document.querySelector("#flushTable tbody");
thead.innerHTML = "";
tbody.innerHTML = "";
for (let j = 0; j < m_number_of_filaments; j++) {
if (j == 0) {
var tag = document.createElement("th")
tag.innerHTML = "<div style='font-size:12px'>from/to</div>"
thead.appendChild(tag)
}
let th = document.createElement("th");
const luminance = getLuminance(m_colours[j]);
const textColor = luminance > 0.5 ? "black" : "white";
th.innerHTML = `<div class="icon-button" style="font-size:10px;background:${m_colours[j]}; color:${textColor};">${j + 1}</div>`;
thead.appendChild(th);
}
for (let i = 0; i < m_number_of_filaments; i++) {
let tr = document.createElement("tr");
let rowHeader = document.createElement("th");
const luminance = getLuminance(m_colours[i]);
const textColor = luminance > 0.5 ? "black" : "white";
rowHeader.innerHTML = `<div class="icon-button" style="font-size:10px; background:${m_colours[i]};color:${textColor};">${i + 1}</div>`;
tr.appendChild(rowHeader);
m_cell_inputs[i] = [];
for (let j = 0; j < m_number_of_filaments; j++) {
let td = document.createElement("td");
td.style.overflow = "hidden";
td.style.textOverflow = "ellipsis";
let displayVal = rawToDislay(m_raw_matrix[m_curr_extruder_id][m_number_of_filaments * i + j], m_flush_multipiers[m_curr_extruder_id])
displayVal = limitDisplayVal(displayVal, m_curr_extruder_id)
m_display_matrix[m_number_of_filaments*i + j] = displayVal
let readonly = (i === j);
let input = document.createElement("input");
input.className = "table-input"
input.type = "number";
input.value = readonly ? 0 : displayVal;
if (readonly) {
input.readOnly = true;
}
input.addEventListener("input", (e) => onCellInput(i, j, e));
m_cell_inputs[i][j] = input;
td.appendChild(input);
tr.appendChild(td);
}
tbody.appendChild(tr);
}
updateWarningTexts();
}
function onCellInput(i, j, event) {
const input = event.target;
let val = parseInt(input.value, 10);
val = limitDisplayVal(val, m_curr_extruder_id);
input.value = val;
if (i !== j) {
var index = m_number_of_filaments*i+j
m_raw_matrix[m_curr_extruder_id][index] = displayToRaw(val, m_flush_multipiers[m_curr_extruder_id])
m_display_matrix[index] = val;
}
updateWarningTexts();
}
function handleExtruderSelect(extruder) {
m_curr_extruder_id = extruder == 'left' ? 0 : 1
updateTable(m_raw_matrix[m_curr_extruder_id], m_curr_extruder_id)
updateVolumeRange(m_min_flush_volumes[m_curr_extruder_id],m_max_flush_volumes[m_curr_extruder_id])
updateFlushMultiplier(m_min_flush_multiplier[m_curr_extruder_id],m_max_flush_multiplier[m_curr_extruder_id])
updateFlushMultiplier(m_curr_extruder_id)
}
function onMultiplierChange() {
let val = parseFloat(document.getElementById("multiplierInput").value);
if (isNaN(val)) val = 1.0;
if(val<m_min_flush_multiplier){
val = m_min_flush_multiplier
document.getElementById("multiplierInput").value = m_min_flush_multiplier;
}
else if(val>m_max_flush_multiplier){
val = m_max_flush_multiplier
document.getElementById("multiplierInput").value = m_max_flush_multiplier;
}
m_flush_multipiers[m_curr_extruder_id] = val;
for (let i = 0; i < m_number_of_filaments; i++) {
for (let j = 0; j < m_number_of_filaments; j++) {
if (i === j) continue;
var index = i * m_number_of_filaments + j;
let displayVal = rawToDislay(m_raw_matrix[m_curr_extruder_id][index] ,m_flush_multipiers[m_curr_extruder_id])
displayVal = limitDisplayVal(displayVal, m_curr_extruder_id)
m_cell_inputs[i][j].value = displayVal;
m_display_matrix[index] = displayVal;
}
}
updateWarningTexts();
}
function updateWarningTexts() {
let hasException = false;
for (let i = 0; i < m_number_of_filaments; i++) {
for (let j = 0; j < m_number_of_filaments; j++) {
if (i === j) continue;
const input = m_cell_inputs[i][j];
let val = parseInt(input.value, 10);
if (isNaN(val)) val = 0;
if (val < m_min_flush_volumes[m_curr_extruder_id] || val > m_max_flush_volumes[m_curr_extruder_id]) {
input.style.color = "red";
hasException = true;
} else {
input.style.removeProperty("color");
}
}
}
const rangeLabel = document.getElementById("volume_range_panel");
if (hasException) {
rangeLabel.classList.remove("normal-text");
rangeLabel.classList.add("warning-text");
} else {
rangeLabel.classList.remove("warning-text");
rangeLabel.classList.add("normal-text");
}
}
</script>
</body>
</html>

View File

@@ -17,7 +17,7 @@
<body onLoad="OnInit()">
<div id="LoadBlock">
<img id="LoadingSvg" src="loading.svg" />
<div id="LoadTip" class="trans" tid="t126">Loading……</div>
<div id="LoadTip" class="trans TextS1" tid="t126">Loading……</div>
</div>
</body>
</html>

View File

@@ -32,5 +32,4 @@ body
{
font-size: 15px;
font-weight: 700;
color: #262E30;
}

View File

@@ -2,8 +2,8 @@
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 19.2742C11 19.675 11.3555 20 11.7941 20C16.3261 20 20 16.6421 20 12.5C20 8.35786 16.3261 5 11.7941 5C11.3555 5 11 5.32496 11 5.72581C11 6.12666 11.3555 6.45161 11.7941 6.45161C15.4489 6.45161 18.4118 9.15957 18.4118 12.5C18.4118 15.8404 15.4489 18.5484 11.7941 18.5484C11.3555 18.5484 11 18.8733 11 19.2742Z" fill="url(#paint0_linear_2417_1599)"/>
<defs>
<linearGradient id="paint0_linear_2417_1599" x1="11.9338" y1="19.2801" x2="11" y2="5.79458" gradientUnits="userSpaceOnUse">
<stop stop-color="#00AE42"/>
<stop offset="1" stop-color="#00AE42" stop-opacity="0"/>
<stop stop-color="#4479FB"/>
<stop offset="1" stop-color="#4479FB" stop-opacity="0"/>
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 747 B

After

Width:  |  Height:  |  Size: 747 B

View File

@@ -9,13 +9,13 @@
padding: 0px;
border-bottom:#4479FB 1px solid;
width: 100%;
display: flex;
justify-content:space-between;
align-items: center;
}
.BannerBtns
{
float: right;
height: 40px;
text-align: center;
margin-right: 10px;
}
@@ -49,10 +49,35 @@
padding: 8px;
}
.PrinterBlock img
.PImg
{
position:relative;
background-color: #EEEEEE;
width:160px;
height: 160px;
height: 160px;
}
.ModelCheckBox
{
position: absolute;
width: 20px;
height: 20px;
right: 10px;
top: 10px;
cursor: pointer;
background-image: url("../img/emptycheck.svg");
background-size: cover;
}
.ModelCheckBox.ModelCheckBoxSelected
{
background-image: url("../img/bluecheck.svg");
}
img.ModelThumbnail
{
width: 100%;
height: 100%;
}
.PName
@@ -63,7 +88,7 @@
.pNozzel
{
display: flex;
display: none;
align-items: center;
justify-content:flex-start;
color: #5A5A5A;

View File

@@ -1,7 +1,7 @@
function OnInit()
{
//let strInput=JSON.stringify(cData);
//HandleStudio(strInput);
//HandleModelList(cData);
TranslatePage();
@@ -47,6 +47,19 @@ function ShowPrinterThumb(pItem, strImg)
$(pItem).attr('onerror',null);
}
function ChooseModel( ModelName )
{
let ChooseItem=$(".ModelCheckBox[model='"+ModelName+"']");
if(ChooseItem!=null)
{
if( $(ChooseItem).hasClass('ModelCheckBoxSelected') )
$(ChooseItem).removeClass('ModelCheckBoxSelected');
else
$(ChooseItem).addClass('ModelCheckBoxSelected');
}
}
function HandleModelList( pVal )
{
if( !pVal.hasOwnProperty("model") )
@@ -78,11 +91,11 @@ function HandleModelList( pVal )
let HtmlNewVendor='<div class="OneVendorBlock" Vendor="'+strVendor+'">'+
'<div class="BlockBanner">'+
' <a>'+sVV+'</a>'+
' <div class="BannerBtns">'+
' <div class="SmallBtn_Green trans" tid="t11" onClick="SelectPrinterAll('+"\'"+strVendor+"\'"+')">all</div>'+
' <div class="SmallBtn trans" tid="t12" onClick="SelectPrinterNone('+"\'"+strVendor+"\'"+')">none</div>'+
' </div>'+
' <a>'+sVV+'</a>'+
'</div>'+
'<div class="PrinterArea"> '+
'</div>'+
@@ -100,22 +113,18 @@ function HandleModelList( pVal )
if( !ModelHtml.hasOwnProperty(strVendor))
ModelHtml[strVendor]='';
let NozzleArray=OneModel['nozzle_diameter'].split(';');
let HtmlNozzel='';
for(let m=0;m<NozzleArray.length;m++)
{
let nNozzel=NozzleArray[m];
HtmlNozzel+='<div class="pNozzel TextS2"><input type="checkbox" model="'+OneModel['model']+'" nozzel="'+nNozzel+'" vendor="'+strVendor+'" /><span>'+nNozzel+'</span><span class="trans" tid="t13">mm nozzle</span></div>';
}
let CoverImage="../../image/printer/"+OneModel['model']+"_cover.png";
let CoverImage2="../../../profiles/"+strVendor+"/"+OneModel['model']+"_cover.png";
let CoverImage3=pVal['configpath']+"/system/"+strVendor+"/"+OneModel['model']+"_cover.png";
//alert( 'FinalCover: '+FinalCover );
ModelHtml[strVendor]+='<div class="PrinterBlock">'+
' <div class="PImg"><img src="'+CoverImage3+'" onerror="ShowPrinterThumb(this,\''+CoverImage2+'\')" /></div>'+
' <div class="PName">'+OneModel['model']+'</div>'+ HtmlNozzel +'</div>';
'<div class="PImg">'+
'<img class="ModelThumbnail" src="'+CoverImage3+'" onerror="ShowPrinterThumb(this,\''+CoverImage2+'\')" />'+
'<div class="ModelCheckBox" model="'+OneModel['model']+'" onClick="ChooseModel(\''+OneModel['model']+'\')"></div>'+
'</div>'+
' <div class="PName">'+OneModel['model']+'</div>'+
'</div>';
}
@@ -127,7 +136,6 @@ function HandleModelList( pVal )
//Update Checkbox
$('input').prop("checked", false);
for(let m=0;m<nTotal;m++)
{
let OneModel=pModel[m];
@@ -135,27 +143,15 @@ function HandleModelList( pVal )
let SelectList=OneModel['nozzle_selected'];
if(SelectList!='')
{
SelectList=OneModel['nozzle_selected'].split(';');
let nLen=SelectList.length;
for(let a=0;a<nLen;a++)
{
let nNozzel=SelectList[a];
$("input[vendor='"+OneModel['vendor']+"'][model='"+OneModel['model']+"'][nozzel='"+nNozzel+"']").prop("checked", true);
}
}
else
{
$("input[vendor='"+OneModel['vendor']+"'][model='"+OneModel['model']+"']").prop("checked", false);
ChooseModel(OneModel['model']);
}
}
let AlreadySelect=$("input:checked");
let AlreadySelect=$(".ModelCheckBoxSelected");
let nSelect=AlreadySelect.length;
if(nSelect==0)
{
//w22
$("input[nozzel='0.4']").prop("checked", true);
{
$("div.OneVendorBlock[vendor='X 4 Series'] .ModelCheckBox").addClass('ModelCheckBoxSelected');
}
TranslatePage();
@@ -164,13 +160,13 @@ function HandleModelList( pVal )
function SelectPrinterAll( sVendor )
{
$("input[vendor='"+sVendor+"']").prop("checked", true);
$("div.OneVendorBlock[vendor='"+sVendor+"'] .ModelCheckBox").addClass('ModelCheckBoxSelected');
}
function SelectPrinterNone( sVendor )
{
$("input[vendor='"+sVendor+"']").prop("checked", false);
$("div.OneVendorBlock[vendor='"+sVendor+"'] .ModelCheckBox").removeClass('ModelCheckBoxSelected');
}
@@ -187,7 +183,7 @@ function OnExit()
{
let ModelAll={};
let ModelSelect=$("input:checked");
let ModelSelect=$(".ModelCheckBoxSelected");
let nTotal=ModelSelect.length;
if( nTotal==0 )
@@ -202,8 +198,6 @@ function OnExit()
let OneItem=ModelSelect[n];
let strModel=OneItem.getAttribute("model");
let strVendor=OneItem.getAttribute("vendor");
let strNozzel=OneItem.getAttribute("nozzel");
//alert(strModel+strVendor+strNozzel);
@@ -214,11 +208,7 @@ function OnExit()
ModelAll[strModel]={};
ModelAll[strModel]["model"]=strModel;
ModelAll[strModel]["nozzle_diameter"]='';
ModelAll[strModel]["vendor"]=strVendor;
}
ModelAll[strModel]["nozzle_diameter"]+=ModelAll[strModel]["nozzle_diameter"]==''?strNozzel:';'+strNozzel;
}
var tSend={};

View File

@@ -23,37 +23,49 @@
<!--<div class="OneVendorBlock" Vendor="QDT">
<div class="BlockBanner">
<a>QDT-3DP</a>
<div class="BannerBtns">
<div class="SmallBtn_Green trans" onClick="SelectPrinterAll('QDT')">所有</div>
<div class="SmallBtn trans" onClick="SelectPrinterNone('QDT')">无</div>
</div>
<a>QDT-3DP</a>
</div>
<div class="PrinterArea">
<div class="PrinterBlock">
<div class="PImg"><img src="p2.jpg" /></div>
<div class="PImg">
<img class="ModelThumbnail" src="p2.jpg" />
<div class="ModelCheckBox ModelCheckBoxSelected" model="QDT-3DP-V5NORMAL" onClick="ChooseModel('QDT-3DP-V5NORMAL')"></div>
</div>
<div class="PName">QDT-3DP-V4NORMAL</div>
<div class="pNozzel TextS2"><input id="ZZ" type="checkbox" model="QDT-3DP-V4NORMAL" nozzel="0.4" vendor="QDT" />0.4mm nozzle</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V4NORMAL" nozzel="0.1" vendor="QDT" />0.1mm nozzle</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V4NORMAL" nozzel="0.1" vendor="QDT" />0.1mm nozzle</div>
</div>
<div class="PrinterBlock">
<div class="PImg"><img src="p1.jpg" /></div>
<div class="PImg">
<img class="ModelThumbnail" src="p2.jpg" />
<div class="ModelCheckBox"></div>
</div>
<div class="PName">QDT-3DP-V4NORMAL</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V5NORMAL" nozzel="0.4" vendor="QDT" />0.4mm nozzle</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V5NORMAL" nozzel="0.2" vendor="QDT" />0.22mm nozzle</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V5NORMAL" nozzel="0.1" vendor="QDT" />0.1mm nozzle</div>
</div>
<div class="PrinterBlock">
<div class="PImg"><img src="p2.jpg" /></div>
<div class="PImg">
<img class="ModelThumbnail" src="p2.jpg" />
<div class="ModelCheckBox"></div>
</div>
<div class="PName">QDT-3DP-V4NORMAL</div>
<div class="pNozzel TextS2"><input id="ZZ" type="checkbox" model="QDT-3DP-V4NORMAL" nozzel="0.4" vendor="QDT" />0.4mm nozzle</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V4NORMAL" nozzel="0.1" vendor="QDT" />0.11mm nozzle</div>
</div>
<div class="PrinterBlock">
<div class="PImg"><img src="p1.jpg" /></div>
<div class="PImg">
<img class="ModelThumbnail" src="p2.jpg" />
<div class="ModelCheckBox ModelCheckBoxSelected"></div>
</div>
<div class="PName">QDT-3DP-V4NORMAL</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V5NORMAL" nozzel="0.4" vendor="QDT" />0.4mm nozzle</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V5NORMAL" nozzel="0.2" vendor="QDT" />0.22mm nozzle</div>
@@ -66,24 +78,30 @@
<div class="OneVendorBlock" Vendor="QIDI">
<div class="BlockBanner">
<a>QIDI-3DP</a>
<div class="BannerBtns">
<div class="Banner-Btn" onClick="SelectPrinterAll('QIDI')">所有</div>
<div class="Banner-Btn" onClick="SelectPrinterNone('QIDI')">无</div>
<div class="SmallBtn_Green trans" onClick="SelectPrinterAll('QIDI')">所有</div>
<div class="SmallBtn trans" onClick="SelectPrinterNone('QIDI')">无</div>
</div>
<a>QDT-3DP</a>
</div>
<div class="PrinterArea">
<div class="PrinterBlock">
<div class="PImg"><img src="p2.jpg" /></div>
<div class="PImg">
<img class="ModelThumbnail" src="p2.jpg" />
<div class="ModelCheckBox ModelCheckBoxSelected"></div>
</div>
<div class="PName TextS1">QDT-3DP-V4NORMAL</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V4NORMAL" nozzel="0.4" vendor="QIDI" />0.4mm nozzle</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V4NORMAL" nozzel="0.1" vendor="QIDI" />0.1mm nozzle</div>
</div>
<div class="PrinterBlock">
<div class="PImg"><img src="p1.jpg" /></div>
<div class="PImg">
<img class="ModelThumbnail" src="p2.jpg" />
<div class="ModelCheckBox ModelCheckBoxSelected"></div>
</div>
<div class="PName TextS1">QDT-3DP-V4NORMAL</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V5NORMAL" nozzel="0.4" vendor="QIDI" />0.4mm nozzle</div>
<div class="pNozzel TextS2"><input type="checkbox" model="QDT-3DP-V5NORMAL" nozzel="0.2" vendor="QIDI" />0.2mm nozzle</div>

View File

@@ -1,472 +0,0 @@
var cData={
"filament": {
"QDT PA-CF @QDT": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "QDT PA-CF @QDT",
"selected": 1,
"sub_path": "filament/QDT PA-CF @QDT.json",
"type": "PA6+CF",
"vendor": "QDT"
},
"Generic ABS": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "Generic ABS",
"selected": 1,
"sub_path": "filament/Generic ABS.json",
"type": "ABS",
"vendor": "Unknow"
},
"Generic PETG": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "Generic PETG",
"selected": 1,
"sub_path": "filament/Generic PETG.json",
"type": "PET",
"vendor": "Unknow"
},
"Generic PLA": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "Generic PLA",
"selected": 1,
"sub_path": "filament/Generic PLA.json",
"type": "PLA",
"vendor": "Unknow"
},
"Generic TPU": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "Generic TPU",
"selected": 1,
"sub_path": "filament/Generic TPU.json",
"type": "TPU",
"vendor": "Unknow"
},
"Generic TPU83": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "Generic TPU83",
"selected": 1,
"sub_path": "filament/Generic TPU83.json",
"type": "TPU",
"vendor": "Unknow"
},
"Generic TPU87": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "Generic TPU87",
"selected": 1,
"sub_path": "filament/Generic TPU87.json",
"type": "TPU",
"vendor": "Unknow"
},
"Generic TPU90": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "Generic TPU90",
"selected": 1,
"sub_path": "filament/Generic TPU90.json",
"type": "TPU",
"vendor": "Unknow"
},
"Generic TPU95": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "Generic TPU95",
"selected": 1,
"sub_path": "filament/Generic TPU95.json",
"type": "TPU",
"vendor": "Unknow"
},
"K5 ABS @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K5 ABS @Kexcelled",
"selected": 1,
"sub_path": "filament/K5 ABS @Kexcelled.json",
"type": "ABS",
"vendor": "Kexcelled"
},
"K5 ASA @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K5 ASA @Kexcelled",
"selected": 1,
"sub_path": "filament/K5 ASA @Kexcelled.json",
"type": "ABS",
"vendor": "Kexcelled"
},
"K5 PETG @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K5 PETG @Kexcelled",
"selected": 1,
"sub_path": "filament/K5 PETG @Kexcelled.json",
"type": "PET",
"vendor": "Kexcelled"
},
"K5 PLA~ @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K5 PLA~ @Kexcelled",
"selected": 1,
"sub_path": "filament/K5 PLA~ @Kexcelled.json",
"type": "PLA",
"vendor": "Kexcelled"
},
"K5 Silk PLA~ @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K5 Silk PLA~ @Kexcelled",
"selected": 1,
"sub_path": "filament/K5 Silk PLA~ @Kexcelled.json",
"type": "PLA",
"vendor": "Kexcelled"
},
"K5 Sparkle PLA @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K5 Sparkle PLA @Kexcelled",
"selected": 1,
"sub_path": "filament/K5 Sparkle PLA @Kexcelled.json",
"type": "PLA",
"vendor": "Kexcelled"
},
"K5M PLA~ @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K5M PLA~ @Kexcelled",
"selected": 1,
"sub_path": "filament/K5M PLA~ @Kexcelled.json",
"type": "PLA",
"vendor": "Kexcelled"
},
"K5P PLA~ @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K5P PLA~ @Kexcelled",
"selected": 1,
"sub_path": "filament/K5P PLA~ @Kexcelled.json",
"type": "PLA",
"vendor": "Kexcelled"
},
"K5T ABS @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K5T ABS @Kexcelled",
"selected": 1,
"sub_path": "filament/K5T ABS @Kexcelled.json",
"type": "ABS",
"vendor": "Kexcelled"
},
"K6 PETG @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K6 PETG @Kexcelled",
"selected": 1,
"sub_path": "filament/K6 PETG @Kexcelled.json",
"type": "PET",
"vendor": "Kexcelled"
},
"K6 PLA~ @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K6 PLA~ @Kexcelled",
"selected": 1,
"sub_path": "filament/K6 PLA~ @Kexcelled.json",
"type": "PLA",
"vendor": "Kexcelled"
},
"K6CF PLA~ @Kexcelled ": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K6CF PLA~ @Kexcelled ",
"selected": 0,
"sub_path": "filament/K6CF PLA~ @Kexcelled.json",
"type": "PLA",
"vendor": "Kexcelled"
},
"K7 PC @Kexcelled ": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K7 PC @Kexcelled ",
"selected": 0,
"sub_path": "filament/K7 PC @Kexcelled.json",
"type": "PA6+CF",
"vendor": "Kexcelled"
},
"K7CF PETG @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K7CF PETG @Kexcelled",
"selected": 1,
"sub_path": "filament/K7CF PETG @Kexcelled.json",
"type": "PET",
"vendor": "Kexcelled"
},
"K7CFLM PAHT @Kexcelled": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "K7CFLM PAHT @Kexcelled",
"selected": 1,
"sub_path": "filament/K7CFLM PAHT @Kexcelled.json",
"type": "PA6+CF",
"vendor": "Kexcelled"
},
"PLA Silk with Glue @ALL": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PLA Silk with Glue @ALL",
"selected": 1,
"sub_path": "filament/PLA Silk with Glue @ALL.json",
"type": "PLA",
"vendor": "ALL"
},
"PLA with Glue except Silk @ALL": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PLA with Glue except Silk @ALL",
"selected": 1,
"sub_path": "filament/PLA with Glue except Silk @ALL.json",
"type": "PLA",
"vendor": "ALL"
},
"PolyDissolve @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyDissolve @Polymaker",
"selected": 1,
"sub_path": "filament/PolyDissolve @Polymaker.json",
"type": "PLA",
"vendor": "Polymaker"
},
"PolyFlex TPU95HF @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyFlex TPU95HF @Polymaker",
"selected": 1,
"sub_path": "filament/PolyFlex TPU95HF @Polymaker.json",
"type": "TPU",
"vendor": "Polymaker"
},
"PolyLite ABS @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyLite ABS @Polymaker",
"selected": 1,
"sub_path": "filament/PolyLite ABS @Polymaker.json",
"type": "ABS",
"vendor": "Polymaker"
},
"PolyLite ASA @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyLite ASA @Polymaker",
"selected": 1,
"sub_path": "filament/PolyLite ASA @Polymaker.json",
"type": "ABS",
"vendor": "Polymaker"
},
"PolyLite PC @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyLite PC @Polymaker",
"selected": 1,
"sub_path": "filament/PolyLite PC @Polymaker.json",
"type": "PA6+CF",
"vendor": "Polymaker"
},
"PolyLite PETG @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyLite PETG @Polymaker",
"selected": 1,
"sub_path": "filament/PolyLite PETG @Polymaker.json",
"type": "PET",
"vendor": "Polymaker"
},
"PolyLite PLA Pro~ @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyLite PLA Pro~ @Polymaker",
"selected": 1,
"sub_path": "filament/PolyLite PLA Pro~ @Polymaker.json",
"type": "PLA",
"vendor": "Polymaker"
},
"PolyLite PLA Silk~ @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyLite PLA Silk~ @Polymaker",
"selected": 1,
"sub_path": "filament/PolyLite PLA Silk~ @Polymaker.json",
"type": "PLA",
"vendor": "Polymaker"
},
"PolyLite PLA~ @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyLite PLA~ @Polymaker",
"selected": 1,
"sub_path": "filament/PolyLite PLA~ @Polymaker.json",
"type": "PLA",
"vendor": "Polymaker"
},
"PolyMax PC @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyMax PC @Polymaker",
"selected": 1,
"sub_path": "filament/PolyMax PC @Polymaker.json",
"type": "PA6+CF",
"vendor": "Polymaker"
},
"PolyMax PETG @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyMax PETG @Polymaker",
"selected": 1,
"sub_path": "filament/PolyMax PETG @Polymaker.json",
"type": "PET",
"vendor": "Polymaker"
},
"PolyMax PLA~ @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyMax PLA~ @Polymaker",
"selected": 1,
"sub_path": "filament/PolyMax PLA~ @Polymaker.json",
"type": "PLA",
"vendor": "Polymaker"
},
"PolyMide CoPA @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyMide CoPA @Polymaker",
"selected": 1,
"sub_path": "filament/PolyMide CoPA @Polymaker.json",
"type": "PA6+CF",
"vendor": "Polymaker"
},
"PolyMide PA12-CF @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyMide PA12-CF @Polymaker",
"selected": 1,
"sub_path": "filament/PolyMide PA12-CF @Polymaker.json",
"type": "PA6+CF",
"vendor": "Polymaker"
},
"PolyMide PA6-CF @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyMide PA6-CF @Polymaker",
"selected": 1,
"sub_path": "filament/PolyMide PA6-CF @Polymaker.json",
"type": "PA6+CF",
"vendor": "Polymaker"
},
"PolyMide PA6-GF @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyMide PA6-GF @Polymaker",
"selected": 1,
"sub_path": "filament/PolyMide PA6-GF @Polymaker.json",
"type": "PA6+CF",
"vendor": "Polymaker"
},
"PolySupport @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolySupport @Polymaker",
"selected": 1,
"sub_path": "filament/PolySupport @Polymaker.json",
"type": "PLA",
"vendor": "Polymaker"
},
"PolyTerra PLA~ @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyTerra PLA~ @Polymaker",
"selected": 1,
"sub_path": "filament/PolyTerra PLA~ @Polymaker.json",
"type": "PLA",
"vendor": "Polymaker"
},
"PolyWood PLA~ @Polymaker": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "PolyWood PLA~ @Polymaker",
"selected": 1,
"sub_path": "filament/PolyWood PLA~ @Polymaker.json",
"type": "PLA",
"vendor": "Polymaker"
},
"eSUN ABS @eSUN": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "eSUN ABS @eSUN",
"selected": 1,
"sub_path": "filament/eSUN ABS @eSUN.json",
"type": "ABS",
"vendor": "eSUN"
},
"eSUN ABS+ @eSUN": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "eSUN ABS+ @eSUN",
"selected": 1,
"sub_path": "filament/eSUN ABS+ @eSUN.json",
"type": "ABS",
"vendor": "eSUN"
},
"eSUN PETG @eSUN": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "eSUN PETG @eSUN",
"selected": 1,
"sub_path": "filament/eSUN PETG @eSUN.json",
"type": "PET",
"vendor": "eSUN"
},
"eSUN PLA @eSUN": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "eSUN PLA @eSUN",
"selected": 1,
"sub_path": "filament/eSUN PLA @eSUN.json",
"type": "PLA",
"vendor": "eSUN"
},
"eSUN PLA Matte~ @eSUN": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "eSUN PLA Matte~ @eSUN",
"selected": 1,
"sub_path": "filament/eSUN PLA Matte~ @eSUN.json",
"type": "PLA",
"vendor": "eSUN"
},
"eSUN PLA ST @eSUN": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "eSUN PLA ST @eSUN",
"selected": 1,
"sub_path": "filament/eSUN PLA ST @eSUN.json",
"type": "PLA",
"vendor": "eSUN"
},
"eSUN PLA Silk~ @eSUN": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "eSUN PLA Silk~ @eSUN",
"selected": 1,
"sub_path": "filament/eSUN PLA Silk~ @eSUN.json",
"type": "PLA",
"vendor": "eSUN"
},
"eSUN PLA+~ @eSUN": {
"models": "[QDT-3DP-V4NORMAL][QDT-3DP-V5NORMAL]",
"name": "eSUN PLA+~ @eSUN",
"selected": 1,
"sub_path": "filament/eSUN PLA+~ @eSUN.json",
"type": "PLA",
"vendor": "eSUN"
}
},
"machine": [{
"model": "QDT-3DP-V4NORMAL",
"name": "QIDITech QDT-3DP-001-V4-normal",
"sub_path": "machine/QIDITech QDT-3DP-001-V4-normal.json"
},
{
"model": "QDT-3DP-V5NORMAL",
"name": "QIDITech QDT-3DP-001-V5-normal",
"sub_path": "machine/QIDITech QDT-3DP-001-V5-normal.json"
}
],
"model": [{
"cover": "D:\\Document\\QIDI\\DevCode\\Slicer\\qidi_slicer\\build\\src\\Debug\\resources\\profiles\\QDT\\QDT-3DP-V4NORMAL_cover.png",
"materials": "Generic PLA;PolyDissolve @Polymaker;PolyFlex TPU95HF @Polymaker;K5 Sparkle PLA @Kexcelled;Rock PLA @Polymaker;Generic TPU95;Generic TPU90;Generic TPU87;Generic TPU83;PolyMide CoPA @Polymaker;PolyMide PA6-GF @Polymaker;PolyMide PA12-CF @Polymaker;PolyMide PA6-CF @Polymaker;PolyLite ASA @Polymaker;K5 ASA @Kexcelled;K5T ABS @Kexcelled;PLA with Glue except Silk @ALL;PLA Silk with Glue @ALL;PolyTerra PLA~ @Polymaker; PolyLite PLA~ @Polymaker; PolyLite PLA Pro~ @Polymaker; PolyLite PLA Silk~ @Polymaker; PolyMax PLA~ @Polymaker; PolyWood PLA~ @Polymaker;K5 Silk PLA~ @Kexcelled;K5 PLA~ @Kexcelled;K6 PLA~ @Kexcelled;K6CF PLA~ @Kexcelled;K5M PLA~ @Kexcelled;K5P PLA~ @Kexcelled;eSUN PLA @eSUN; eSUN PLA+~ @eSUN; eSUN PLA Matte~ @eSUN; eSUN PLA Silk~ @eSUN; eSUN PLA ST @eSUN; PolyLite ABS @Polymaker; K5 ABS @Kexcelled; eSUN ABS @eSUN; eSUN ABS+ @eSUN; K5 PETG @Kexcelled; K6 PETG @Kexcelled; PolyMax PETG @Polymaker; PolyLite PETG @Polymaker; eSUN PETG @eSUN; PolySupport @Polymaker;K7CF PETG @Kexcelled;K7CFLM PAHT @Kexcelled; K7LM PAHT @Kexcelled; QDT PA-CF @QDT;K7 PC @Kexcelled; PolyLite PC @Polymaker; PolyMax PC @Polymaker;",
"model": "QDT-3DP-V4NORMAL",
"nozzle_diameter": "0.4;0.2",
"nozzle_selected": "0.4",
"sub_path": "machine/QDT-3DP-V4NORMAL.json",
"vendor": "QDT"
},
{
"cover": "D:\\Document\\QIDI\\DevCode\\Slicer\\qidi_slicer\\build\\src\\Debug\\resources\\profiles\\QDT\\QDT-3DP-V5NORMAL_cover.png",
"materials": "Generic PLA;PolyDissolve @Polymaker;PolyFlex TPU95HF @Polymaker;K5 Sparkle PLA @Kexcelled;Rock PLA @Polymaker;Generic TPU95;Generic TPU90;Generic TPU87;Generic TPU83;PolyMide CoPA @Polymaker;PolyMide PA6-GF @Polymaker;PolyMide PA12-CF @Polymaker;PolyMide PA6-CF @Polymaker;PolyLite ASA @Polymaker;K5 ASA @Kexcelled;K5T ABS @Kexcelled;PLA with Glue except Silk @ALL;PLA Silk with Glue @ALL;PolyTerra PLA~ @Polymaker; PolyLite PLA~ @Polymaker; PolyLite PLA Pro~ @Polymaker; PolyLite PLA Silk~ @Polymaker; PolyMax PLA~ @Polymaker; PolyWood PLA~ @Polymaker;K5 Silk PLA~ @Kexcelled;K5 PLA~ @Kexcelled;K6 PLA~ @Kexcelled;K6CF PLA~ @Kexcelled;K5M PLA~ @Kexcelled;K5P PLA~ @Kexcelled;eSUN PLA @eSUN; eSUN PLA+~ @eSUN; eSUN PLA Matte~ @eSUN; eSUN PLA Silk~ @eSUN; eSUN PLA ST @eSUN; PolyLite ABS @Polymaker; K5 ABS @Kexcelled; eSUN ABS @eSUN; eSUN ABS+ @eSUN; K5 PETG @Kexcelled; K6 PETG @Kexcelled; PolyMax PETG @Polymaker; PolyLite PETG @Polymaker; eSUN PETG @eSUN; PolySupport @Polymaker;K7CF PETG @Kexcelled;K7CFLM PAHT @Kexcelled; K7LM PAHT @Kexcelled; QDT PA-CF @QDT;K7 PC @Kexcelled; PolyLite PC @Polymaker; PolyMax PC @Polymaker;",
"model": "QDT-3DP-V5NORMAL",
"nozzle_diameter": "0.4;0.2;0.1",
"nozzle_selected": "0.4",
"sub_path": "machine/QDT-3DP-V5NORMAL.json",
"vendor": "QDT"
}
]
};
var MData={
"QDT-3DP-V4NORMAL": {
"model": "QDT-3DP-V4NORMAL",
"nozzle_diameter": "0.4",
"vendor": "QDT"
},
"QDT-3DP-V5NORMAL": {
"model": "QDT-3DP-V5NORMAL",
"nozzle_diameter": "0.4;0.2",
"vendor": "QDT"
}
};

View File

@@ -8,13 +8,13 @@
padding: 0px;
border-bottom:#4479FB 1px solid; /* y96 */
width: 100%;
display: flex;
justify-content:space-between;
align-items: center;
}
.BannerBtns
{
float: right;
height: 40px;
text-align: center;
margin-right: 10px;
}
@@ -48,21 +48,46 @@
padding: 8px;
}
.PrinterBlock img
.PImg
{
position:relative;
background-color: #EEEEEE;
width:160px;
height: 160px;
height: 160px;
}
.ModelCheckBox
{
position: absolute;
width: 20px;
height: 20px;
right: 10px;
top: 10px;
cursor: pointer;
background-image: url("../img/emptycheck.svg");
background-size: cover;
}
.ModelCheckBox.ModelCheckBoxSelected
{
background-image: url("../img/bluecheck.svg");
}
img.ModelThumbnail
{
width: 100%;
height: 100%;
}
.PName
{
font-weight: 700;
text-align:left;
text-align: left;
}
.pNozzel
{
display: flex;
display: none;
align-items: center;
justify-content:flex-start;
color: #5A5A5A;

View File

@@ -46,6 +46,19 @@ function ShowPrinterThumb(pItem, strImg)
$(pItem).attr('onerror',null);
}
function ChooseModel( ModelName )
{
let ChooseItem=$(".ModelCheckBox[model='"+ModelName+"']");
if(ChooseItem!=null)
{
if( $(ChooseItem).hasClass('ModelCheckBoxSelected') )
$(ChooseItem).removeClass('ModelCheckBoxSelected');
else
$(ChooseItem).addClass('ModelCheckBoxSelected');
}
}
function HandleModelList( pVal )
{
if( !pVal.hasOwnProperty("model") )
@@ -77,11 +90,11 @@ function HandleModelList( pVal )
let HtmlNewVendor='<div class="OneVendorBlock" Vendor="'+strVendor+'">'+
'<div class="BlockBanner">'+
' <a>'+sVV+'</a>'+
' <div class="BannerBtns">'+
' <div class="SmallBtn_Green trans" tid="t11" onClick="SelectPrinterAll('+"\'"+strVendor+"\'"+')">all</div>'+
' <div class="SmallBtn trans" tid="t12" onClick="SelectPrinterNone('+"\'"+strVendor+"\'"+')">none</div>'+
' </div>'+
' <a>'+sVV+'</a>'+
'</div>'+
'<div class="PrinterArea"> '+
'</div>'+
@@ -98,14 +111,6 @@ function HandleModelList( pVal )
//Collect Html Node Nozzel Html
if( !ModelHtml.hasOwnProperty(strVendor))
ModelHtml[strVendor]='';
let NozzleArray=OneModel['nozzle_diameter'].split(';');
let HtmlNozzel='';
for(let m=0;m<NozzleArray.length;m++)
{
let nNozzel=NozzleArray[m];
HtmlNozzel+='<div class="pNozzel TextS2"><input type="checkbox" model="'+OneModel['model']+'" nozzel="'+nNozzel+'" vendor="'+strVendor+'" /><span>'+nNozzel+'</span><span class="trans" tid="t13">mm nozzle</span></div>';
}
let CoverImage="../../image/printer/"+OneModel['model']+"_cover.png";
let CoverImage2="../../../profiles/"+strVendor+"/"+OneModel['model']+"_cover.png";
@@ -113,8 +118,13 @@ function HandleModelList( pVal )
//alert( 'FinalCover: '+FinalCover );
ModelHtml[strVendor]+='<div class="PrinterBlock">'+
' <div class="PImg"><img src="'+CoverImage3+'" onerror="ShowPrinterThumb(this,\''+CoverImage2+'\')" /></div>'+
' <div class="PName">'+OneModel['model']+'</div>'+ HtmlNozzel +'</div>';
'<div class="PImg">'+
'<img class="ModelThumbnail" src="'+CoverImage3+'" onerror="ShowPrinterThumb(this,\''+CoverImage2+'\')" />'+
'<div class="ModelCheckBox" model="'+OneModel['model']+'" onClick="ChooseModel(\''+OneModel['model']+'\')"></div>'+
'</div>'+
' <div class="PName">'+OneModel['model']+'</div>'+
'</div>';
}
//Update Nozzel Html Append
@@ -125,7 +135,6 @@ function HandleModelList( pVal )
//Update Checkbox
$('input').prop("checked", false);
for(let m=0;m<nTotal;m++)
{
let OneModel=pModel[m];
@@ -133,26 +142,15 @@ function HandleModelList( pVal )
let SelectList=OneModel['nozzle_selected'];
if(SelectList!='')
{
SelectList=OneModel['nozzle_selected'].split(';');
let nLen=SelectList.length;
for(let a=0;a<nLen;a++)
{
let nNozzel=SelectList[a];
$("input[vendor='"+OneModel['vendor']+"'][model='"+OneModel['model']+"'][nozzel='"+nNozzel+"']").prop("checked", true);
}
}
else
{
$("input[vendor='"+OneModel['vendor']+"'][model='"+OneModel['model']+"']").prop("checked", false);
ChooseModel(OneModel['model']);
}
}
let AlreadySelect=$("input:checked");
let AlreadySelect=$(".ModelCheckBoxSelected");
let nSelect=AlreadySelect.length;
if(nSelect==0)
{
$("input[nozzel='0.4'][vendor='QDT']").prop("checked", true);
$("div.OneVendorBlock[vendor='QDT'] .ModelCheckBox").addClass('ModelCheckBoxSelected');
}
TranslatePage();
@@ -161,13 +159,13 @@ function HandleModelList( pVal )
function SelectPrinterAll( sVendor )
{
$("input[vendor='"+sVendor+"']").prop("checked", true);
$("div.OneVendorBlock[vendor='"+sVendor+"'] .ModelCheckBox").addClass('ModelCheckBoxSelected');
}
function SelectPrinterNone( sVendor )
{
$("input[vendor='"+sVendor+"']").prop("checked", false);
$("div.OneVendorBlock[vendor='"+sVendor+"'] .ModelCheckBox").removeClass('ModelCheckBoxSelected');
}
@@ -176,7 +174,7 @@ function OnExit()
{
let ModelAll={};
let ModelSelect=$("input:checked");
let ModelSelect=$(".ModelCheckBoxSelected");
let nTotal=ModelSelect.length;
if( nTotal==0 )
@@ -191,8 +189,6 @@ function OnExit()
let OneItem=ModelSelect[n];
let strModel=OneItem.getAttribute("model");
let strVendor=OneItem.getAttribute("vendor");
let strNozzel=OneItem.getAttribute("nozzel");
//alert(strModel+strVendor+strNozzel);
@@ -203,11 +199,7 @@ function OnExit()
ModelAll[strModel]={};
ModelAll[strModel]["model"]=strModel;
ModelAll[strModel]["nozzle_diameter"]='';
ModelAll[strModel]["vendor"]=strVendor;
}
ModelAll[strModel]["nozzle_diameter"]+=ModelAll[strModel]["nozzle_diameter"]==''?strNozzel:';'+strNozzel;
}
var tSend={};

View File

@@ -40,7 +40,7 @@ body
.TextS1
{
color:#efeff0;
}
.TextS2

View File

@@ -0,0 +1,7 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2 2H26V26H2V2Z" fill="#4479FB"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 1H27V27H1V1ZM2 2V26H26V2H2Z" fill="#ACACAC"/>
<path d="M2 2H26V26H2V2Z" fill="#4479FB"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M25 3H3V25H25V3ZM2 2V26H26V2H2Z" fill="white"/>
<path d="M22.7168 8.2832C23.0944 8.66079 23.0944 9.27137 22.7168 9.64495L12.112 20.2537C11.7344 20.6313 11.1239 20.6313 10.7503 20.2537L5.2832 14.7907C4.9056 14.4131 4.9056 13.8025 5.2832 13.4289C5.66079 13.0553 6.27137 13.0513 6.64495 13.4289L11.4251 18.2091L21.351 8.2832C21.7286 7.9056 22.3392 7.9056 22.7128 8.2832H22.7168Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 728 B

View File

@@ -0,0 +1,5 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 1H27V27H1V1ZM2 2V26H26V2H2Z" fill="#ACACAC"/>
<path d="M2 2H26V26H2V2Z" fill="white" fill-opacity="0.3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M25 3H3V25H25V3ZM2 2V26H26V2H2Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 358 B

View File

@@ -222,7 +222,7 @@ body
.PH_Status_Success
{
color: #00AE42;
color: #4479fb;
}
.PH_Gcode_Icon

View File

@@ -269,7 +269,7 @@ body
position: absolute;
height: 60px;
width: 12px;
right: 1px;
right: 0px;
top: calc(50% - 30px);
cursor: pointer;
background-repeat: no-repeat;
@@ -279,6 +279,7 @@ body
border-top: 1px solid rgba(238, 238, 238, 1);
border-bottom: 1px solid rgba(238, 238, 238, 1);
border-radius: 4px 0px 0px 4px;
z-index: 99;
}
#HideBtn:hover

View File

@@ -63,5 +63,7 @@
#HideBtn
{
transform: scaleX(-1);
border-radius: 0px 4px 4px 0px;
border-radius: 0px 4px 4px 0px;
border-left: 0px solid rgba(238, 238, 238, 1);
border-right: 1px solid rgba(238, 238, 238, 1);
}

View File

@@ -431,18 +431,26 @@ function OnClickOpenProject()
SendWXMessage( JSON.stringify(tSend) );
}
let RecentClick=true;
function OnOpenRecentFile( strPath )
{
if( RecentPage_Mode!=Recent_Normal )
return;
var tSend={};
tSend['sequence_id']=Math.round(new Date() / 1000);
tSend['command']="homepage_open_recentfile";
tSend['data']={};
tSend['data']['path']=decodeURI(strPath);
SendWXMessage( JSON.stringify(tSend) );
if(RecentClick)
{
RecentClick = false;
setTimeout(() => {
RecentClick = true;
}, 1000);
var tSend={};
tSend['sequence_id']=Math.round(new Date() / 1000);
tSend['command']="homepage_open_recentfile";
tSend['data']={};
tSend['data']['path']=decodeURI(strPath);
SendWXMessage( JSON.stringify(tSend) );
}
}
function OnDeleteRecentFile( )

View File

@@ -253,6 +253,7 @@ function ShowLeftMenuTip( bShow )
$("div[menu='recent'] div.BtnIcon").prop('title',GetCurrentTextByKey('t35'));
$("div[menu='online'] div.BtnIcon").prop('title',GetCurrentTextByKey('t107'));
$("div[menu='makerlab'] div.BtnIcon").prop('title','MakerLab');
$("div[menu='makersupply'] div.BtnIcon").prop('title',GetCurrentTextByKey('t125'));
$("div[menu='printhistory'] div.BtnIcon").prop('title',GetCurrentTextByKey('t117'));
$("div[menu='manual'] div.BtnIcon").prop('title',GetCurrentTextByKey('t87'));
}
@@ -262,8 +263,9 @@ function ShowLeftMenuTip( bShow )
$("div[menu='recent'] div.BtnIcon").removeAttr('title');
$("div[menu='online'] div.BtnIcon").removeAttr('title');
$("div[menu='makerlab'] div.BtnIcon").removeAttr('title');
$("div[menu='makersupply'] div.BtnIcon").removeAttr('title');
$("div[menu='printhistory'] div.BtnIcon").removeAttr('title');
$("div[menu='manual'] div.BtnIcon").removeAttr('title');
$("div[menu='manual'] div.BtnIcon").removeAttr('title');
}
}

View File

@@ -77,17 +77,4 @@
<div id="HideBtn" onClick="ChangeLeftWidth()"></div>
</body>
</html>
</html>