mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
add mall
This commit is contained in:
parent
987ee1bde2
commit
d13647258d
4
frame.js
4
frame.js
@ -138,7 +138,7 @@ var can = Volcanos("chat", {
|
||||
var name = item.name || item.value || "args"+plugin.page.Select(can, option, "input.args.temp").length;
|
||||
var count = plugin.page.Select(can, option, ".args").length, value = "";
|
||||
args && count < args.length && (value = args[count] || item.value || "");
|
||||
plugin[name] = can.Inputs(plugin, item, "input", name, value, cb, option);
|
||||
plugin[name] = can.Inputs(plugin, item, item.display||"input", name, value, cb, option);
|
||||
},
|
||||
Select: function(event, target, focus) {
|
||||
can.page.Select(can, field.parentNode, "fieldset.item.select", function(item) {
|
||||
@ -208,7 +208,7 @@ var can = Volcanos("chat", {
|
||||
return plugin
|
||||
}),
|
||||
Inputs: shy("构造控件", function(can, item, type, name, value, cb, option) {
|
||||
var input = Volcanos(name, {_type: "local", item: item,
|
||||
var input = Volcanos(name, {_type: "local", item: item, _plugin: can,
|
||||
Select: function(event) {can.Select(event, input.target, true)},
|
||||
Import: function(event, value, key, index) {var cb = input.onimport[item.imports];
|
||||
value = typeof cb == "function" && cb(event, input, value, key, input.target) || value
|
||||
|
32
plugin/mall/image.js
Normal file
32
plugin/mall/image.js
Normal file
@ -0,0 +1,32 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
init: function(can, msg, cb, output, option) {output.innerHTML = msg.Result();
|
||||
can.page.Append(can, output, [{type: "img", src: "data:image/jpg;base64,"+msg.image[0], onclick: function(event) {
|
||||
var p = can.page.Append(can, output, [{view: ["what", "div"], dataset: {meta: ""+(event.offsetX+1)+","+(event.offsetY-30+1)+""}, style: {
|
||||
background: "red", position: "absolute", width: "10px", height: "10px",
|
||||
left: event.offsetX+1+"px", top: event.offsetY+30+1+"px",
|
||||
}, onclick: function(event) {
|
||||
p.parentNode.removeChild(p)
|
||||
}}]).what
|
||||
}}])
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "组件交互", list: [],
|
||||
})
|
||||
Volcanos("onchoice", {help: "组件菜单", list: ["提交"],
|
||||
"提交": function(event, can, msg, key, target) {
|
||||
can.run(event, ["check", can.page.Select(can, can.target, "div.what", function(item) {return item.dataset.meta}).join(",")], function(msg) {
|
||||
can.user.toast(msg.result_message[0])
|
||||
}, true)
|
||||
},
|
||||
})
|
||||
Volcanos("ondetail", {help: "组件详情", list: ["选择", "修改", "复制"],
|
||||
"选择": "select",
|
||||
"删除": "delete",
|
||||
"复制": function(event, can, msg, cmd, target) {
|
||||
can.user.toast(can.page.CopyText(can, svg.innerHTML), "复制成功")
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: []})
|
||||
|
||||
|
||||
|
110
plugin/mall/input.js
Normal file
110
plugin/mall/input.js
Normal file
@ -0,0 +1,110 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
init: shy("添加控件", function(can, item, name, value, option) {
|
||||
var input = {type: "input", name: name, data: item};
|
||||
item.type = item.type || item._type || item._input;
|
||||
switch (item.type) {
|
||||
case "upfile": item.type = "file"; break
|
||||
case "select":
|
||||
item.values = typeof item.values == "string"? item.values.split(" "): item.values;
|
||||
input.type = "select", input.list = item.values.map(function(value) {
|
||||
return {type: "option", value: value, inner: value};
|
||||
})
|
||||
item.value = value || item.value || item.values[0];
|
||||
can.page.ClassList.add(can, item, "args");
|
||||
break
|
||||
case "textarea":
|
||||
var half = parseFloat(item.half||"1")||1;
|
||||
input.type = "textarea", item.style = "height:"+(item.height||"50px")+";width:"+parseInt(((500-35)/half))+"px";
|
||||
// no break
|
||||
case "text":
|
||||
can.page.ClassList.add(can, item, "args");
|
||||
item.value = value || item.value || "";
|
||||
item.autocomplete = "off";
|
||||
break
|
||||
case "button":
|
||||
item.value = item.value || item.name;
|
||||
}
|
||||
can.page.ClassList.add(can, item, item.view);
|
||||
can.core.List((item.clist||"").split(" "), function(value) {
|
||||
can.page.ClassList.add(can, item, value);
|
||||
})
|
||||
|
||||
var target = can.Dream(option, "input", input)[input.name];
|
||||
(item.type == "text" || item.type == "textarea") && !target.placeholder && (target.placeholder = item.name || "");
|
||||
item.type == "text" && !target.title && (target.title = item.placeholder || item.name || "");
|
||||
item.type == "button" && item.action == "auto" && can.run && can.run({});
|
||||
return target;
|
||||
}),
|
||||
path: function(event, can, value, cmd, target) {
|
||||
return target.value + (target.value == "" || target.value.endsWith("/")? "": "/") + value
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "控件交互", list: [],
|
||||
onclick: function(event, can) {
|
||||
switch (event.target.value) {
|
||||
case "登录":
|
||||
can._plugin.Run(event, ["check", can.page.Select(can, can._plugin._output.target, "div.what", function(item) {return item.dataset.meta}).join(",")], function(msg) {
|
||||
if (msg.result_code == "4") {
|
||||
can._plugin.Run(event, ["login"].concat(can.page.Select(can, can._plugin.target, "input.args", function(item) {return item.value})).concat([msg.cmds[4]]), function(msg) {
|
||||
can.page.toast(msg.result_message[0])
|
||||
})
|
||||
} else {
|
||||
can._plugin.Run(event, [])
|
||||
}
|
||||
}, true)
|
||||
break
|
||||
case "刷新":
|
||||
can.item.type == "button" && can._plugin.Run(event, [])
|
||||
break
|
||||
}
|
||||
},
|
||||
onkeydown: function(event, can) {
|
||||
can.page.oninput(event, can, function(event) {
|
||||
switch (event.key) {
|
||||
case "b":
|
||||
can.Append(event)
|
||||
return true
|
||||
case "m":
|
||||
can.Clone(event)
|
||||
return true
|
||||
}
|
||||
})
|
||||
|
||||
switch (event.key) {
|
||||
case "Enter": can.run(event, []); break
|
||||
case "Escape": event.target.blur(); break
|
||||
default:
|
||||
if (event.target.value.endsWith("j") && event.key == "k") {
|
||||
can.page.DelText(event.target, event.target.selectionStart-1, 2);
|
||||
event.target.blur();
|
||||
break
|
||||
}
|
||||
return false
|
||||
}
|
||||
event.stopPropagation()
|
||||
event.preventDefault()
|
||||
return true
|
||||
},
|
||||
onkeyup: function(event, can) {
|
||||
switch (event.key) {
|
||||
default: return false
|
||||
}
|
||||
event.stopPropagation()
|
||||
event.preventDefault()
|
||||
return true
|
||||
},
|
||||
})
|
||||
Volcanos("onchoice", {help: "控件菜单", list: ["全选", "复制", "清空"],
|
||||
"全选": function(event, can, msg, value, target) {
|
||||
can.target.focus(), can.target.setSelectionRange(0, can.target.value.length);
|
||||
},
|
||||
"复制": function(event, can, msg, value, target) {
|
||||
can.user.toast(can.page.CopyText(can, can.target.value), "复制成功")
|
||||
},
|
||||
"清空": function(event, can, msg, value, target) {
|
||||
can.target.value = "";
|
||||
},
|
||||
})
|
||||
Volcanos("ondetail", {help: "控件详情", list: []})
|
||||
Volcanos("onexport", {help: "导出数据", list: []})
|
||||
|
Loading…
x
Reference in New Issue
Block a user