Initial standalone crypto_okx with one-click deploy.
Add deploy/manage.sh bootstrap for git.bz121.com/dekun/crypto_okx and point docs at this repo. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
(function (global) {
|
||||
|
||||
var delegated = false;
|
||||
|
||||
|
||||
|
||||
function queryInScope(scope, id) {
|
||||
|
||||
if (scope && scope.querySelector) return scope.querySelector("#" + id);
|
||||
|
||||
return document.getElementById(id);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function categoriesData() {
|
||||
|
||||
return global.ORDER_ENTRY_MODEL_CATEGORIES || [];
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function codeToCategoryMap() {
|
||||
|
||||
return global.ORDER_ENTRY_MODEL_CODE_TO_CATEGORY || {};
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function tradeStyleForCode(code, modelSel) {
|
||||
|
||||
if (modelSel && code) {
|
||||
|
||||
var opt = modelSel.querySelector('option[value="' + code.replace(/"/g, '\\"') + '"]');
|
||||
|
||||
if (opt) {
|
||||
|
||||
var ds = opt.getAttribute("data-trade-style");
|
||||
|
||||
if (ds === "swing" || ds === "trend") return ds;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var map = global.ORDER_ENTRY_MODEL_TRADE_STYLE || {};
|
||||
|
||||
return map[code] || "trend";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function findOption(catKey, code) {
|
||||
|
||||
var cats = categoriesData();
|
||||
|
||||
for (var i = 0; i < cats.length; i++) {
|
||||
|
||||
if (cats[i].key !== catKey) continue;
|
||||
|
||||
var opts = cats[i].options || [];
|
||||
|
||||
for (var j = 0; j < opts.length; j++) {
|
||||
|
||||
if (opts[j].code === code) return opts[j];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function filterDomSubOptions(modelSel, catKey, preserveCode) {
|
||||
|
||||
var tagged = modelSel.querySelectorAll("option[data-entry-category]");
|
||||
|
||||
if (!tagged.length) return false;
|
||||
|
||||
|
||||
|
||||
var any = false;
|
||||
|
||||
for (var i = 0; i < tagged.length; i++) {
|
||||
|
||||
var opt = tagged[i];
|
||||
|
||||
var show = !!catKey && opt.getAttribute("data-entry-category") === catKey;
|
||||
|
||||
opt.hidden = !show;
|
||||
|
||||
opt.disabled = !show;
|
||||
|
||||
if (show) any = true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
modelSel.disabled = !any;
|
||||
|
||||
if (!any) {
|
||||
|
||||
modelSel.value = "";
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
var pick = preserveCode || "";
|
||||
|
||||
if (pick) {
|
||||
|
||||
var picked = modelSel.querySelector('option[value="' + pick.replace(/"/g, '\\"') + '"]:not([disabled])');
|
||||
|
||||
if (picked) {
|
||||
|
||||
modelSel.value = pick;
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
var visible = [];
|
||||
|
||||
for (var k = 0; k < tagged.length; k++) {
|
||||
|
||||
if (!tagged[k].disabled) visible.push(tagged[k]);
|
||||
|
||||
}
|
||||
|
||||
if (visible.length === 1) modelSel.value = visible[0].value;
|
||||
|
||||
else modelSel.value = "";
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function rebuildFromCategories(modelSel, catKey, preserveCode) {
|
||||
|
||||
var cats = categoriesData();
|
||||
|
||||
var cat = null;
|
||||
|
||||
for (var i = 0; i < cats.length; i++) {
|
||||
|
||||
if (cats[i].key === catKey) {
|
||||
|
||||
cat = cats[i];
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
modelSel.innerHTML = "";
|
||||
|
||||
var placeholder = document.createElement("option");
|
||||
|
||||
placeholder.value = "";
|
||||
|
||||
placeholder.textContent = "类型";
|
||||
|
||||
modelSel.appendChild(placeholder);
|
||||
|
||||
|
||||
|
||||
if (!cat || !cat.options || !cat.options.length) {
|
||||
|
||||
modelSel.disabled = true;
|
||||
|
||||
modelSel.value = "";
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
modelSel.disabled = false;
|
||||
|
||||
var pick = preserveCode || "";
|
||||
|
||||
for (var k = 0; k < cat.options.length; k++) {
|
||||
|
||||
var o = cat.options[k];
|
||||
|
||||
var opt = document.createElement("option");
|
||||
|
||||
opt.value = o.code;
|
||||
|
||||
opt.textContent = o.label;
|
||||
|
||||
if (o.trade_style) opt.setAttribute("data-trade-style", o.trade_style);
|
||||
|
||||
Reference in New Issue
Block a user