mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt mp
This commit is contained in:
parent
a64d302df6
commit
5d991551fc
@ -2,12 +2,17 @@ const kit = require("utils/kit.js")
|
|||||||
|
|
||||||
App({
|
App({
|
||||||
data: {}, conf: {serve: "https://shylinux.com/chat", space: ""},
|
data: {}, conf: {serve: "https://shylinux.com/chat", space: ""},
|
||||||
|
requests: function(cmd, data, cb) { wx.showLoading()
|
||||||
|
this.request(cmd, data, function(msg) { wx.hideLoading()
|
||||||
|
typeof cb == "function" && cb(msg)
|
||||||
|
})
|
||||||
|
},
|
||||||
request: function(cmd, data, cb) { var app = this; data.sessid = app.conf.sessid, data.pod = app.conf.space
|
request: function(cmd, data, cb) { var app = this; data.sessid = app.conf.sessid, data.pod = app.conf.space
|
||||||
wx.request({method: "POST", url: app.conf.serve+"/"+cmd, data: data, success: function(res) { var msg = res.data
|
wx.request({method: "POST", url: app.conf.serve+"/"+cmd, data: data, success: function(res) { var msg = res.data
|
||||||
if (res.statusCode == 401) { return app.usercode(function() { app.request(cmd, data, cb) }) }
|
if (res.statusCode == 401) { return app.usercode(function() { app.request(cmd, data, cb) }) }
|
||||||
console.log("POST", cmd, msg)
|
console.log("POST", cmd, msg)
|
||||||
|
|
||||||
msg.__proto__ = {
|
var proto = {
|
||||||
Result: function() { return msg.result && msg.result.length > 0 && msg.result.join("") || "" },
|
Result: function() { return msg.result && msg.result.length > 0 && msg.result.join("") || "" },
|
||||||
Length: function() { var max = 0; if (!msg.append) { return max }
|
Length: function() { var max = 0; if (!msg.append) { return max }
|
||||||
for (var i = 0; i < msg.append.length; i++) {
|
for (var i = 0; i < msg.append.length; i++) {
|
||||||
@ -21,9 +26,36 @@ App({
|
|||||||
res.push(line)
|
res.push(line)
|
||||||
}; return res
|
}; return res
|
||||||
},
|
},
|
||||||
|
Data: function(item, index) {
|
||||||
|
var text = msg[item]&&msg[item][index]||""
|
||||||
|
var list = kit.Split(text, " ", "<=/>")
|
||||||
|
|
||||||
|
var res = [], data = {_type: "text", _text: text}
|
||||||
|
for (var i = 0; i < list.length; i++) {
|
||||||
|
if (list[i] == "<") { data = {}
|
||||||
|
if (list[i] == "/") { i++ } else { res.push(data) }
|
||||||
|
data._type = list[i+1]
|
||||||
|
data._text = text
|
||||||
|
if (data._type == "div") { break }
|
||||||
}
|
}
|
||||||
|
|
||||||
var index = []; for (var i = 0; i < msg.Length(); i++) { index.push(i) }; msg._index = index
|
if (list[i] == ">") {
|
||||||
|
|
||||||
|
} else if (list[i+1] == "=") {
|
||||||
|
data[list[i]] = list[i+2]
|
||||||
|
i += 2
|
||||||
|
} else {
|
||||||
|
data[list[i]] = list[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res.length == 0? [data]: res
|
||||||
|
},
|
||||||
|
}; for (var k in proto) { msg[k] = proto[k] }
|
||||||
|
|
||||||
|
msg._index = []; for (var i = 0; i < msg.Length(); i++) { msg._index.push(i) }
|
||||||
|
msg._view = {}, msg["append"] && kit.List(msg["append"], function(k) { msg._view[k] = {}
|
||||||
|
for (var i in msg[k]) { msg._view[k][i] = msg.Data(k, i) }
|
||||||
|
})
|
||||||
typeof cb == "function" && cb(msg)
|
typeof cb == "function" && cb(msg)
|
||||||
}})
|
}})
|
||||||
},
|
},
|
||||||
@ -56,7 +88,7 @@ App({
|
|||||||
console.log("jump", next), wx.navigateTo({url: next, success: cb})
|
console.log("jump", next), wx.navigateTo({url: next, success: cb})
|
||||||
},
|
},
|
||||||
scans: function(cb) { var app = this
|
scans: function(cb) { var app = this
|
||||||
wx.scanCode({success: function(res) { var data = kit.parseJSON(res)
|
wx.scanCode({success: function(res) { var data = kit.parseJSON(res.result)
|
||||||
if (typeof cb == "function" && cb(data)) { return }
|
if (typeof cb == "function" && cb(data)) { return }
|
||||||
|
|
||||||
switch (data.type) {
|
switch (data.type) {
|
||||||
@ -69,7 +101,7 @@ App({
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
default: app.request("mp/login/scan", res)
|
default: app.request("mp/login/scan", data)
|
||||||
}
|
}
|
||||||
}})
|
}})
|
||||||
},
|
},
|
||||||
|
@ -1,8 +1,42 @@
|
|||||||
<template name="action">
|
<template name="action">
|
||||||
<view class="action">
|
<view class="action">
|
||||||
<view class="item" wx:for="{{action}}" wx:key="index">
|
<view class="item" wx:for="{{action}}" wx:key="index">
|
||||||
<button size="mini" bindtap="onaction" data-name="{{item}}">{{item}}</button>
|
<button bindtap="onaction" data-name="{{item}}" size="mini">{{item}}</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template name="list">
|
||||||
|
<view class="output">
|
||||||
|
<view class="item" wx:for="{{list}}" wx:key="index">
|
||||||
|
<view bindtap="ondetail" class="item" data-index="{{index}}">{{item.name}}</view>
|
||||||
|
<view class="list" wx:if="{{item._show}}">
|
||||||
|
<view bindtap="onchange" class="item" wx:for="{{item.list}}" wx:for-index="i" wx:key="i"
|
||||||
|
data-i="{{i}}" data-index="{{index}}">{{item.name}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template name="table">
|
||||||
|
<table wx:if="{{msg}}">
|
||||||
|
<tr><th wx:for="{{msg.append}}" wx:key="index">{{item}}</th></tr>
|
||||||
|
<tr wx:for="{{msg._index}}" wx:key="index" wx:for-index="line">
|
||||||
|
<td bindtap="onWhich" wx:for="{{msg.append}}" wx:key="index"
|
||||||
|
data-value="{{msg[item][line]}}" data-key="{{item}}" data-index="{{line}}" data-order="{{order}}" data-input="{{msg._view[item][line]}}"
|
||||||
|
>
|
||||||
|
<view bindtap="onWhich" wx:for="{{msg._view[item][line]}}" wx:key="index">
|
||||||
|
<template bindtap="onWhich" is="input" data="{{input: item}}"></template>
|
||||||
|
</view>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template name="input">
|
||||||
|
<view bindtap="onWhich" wx:if="{{input._type == 'text'}}">{{input._text}}</view>
|
||||||
|
<rich-text bindtap="onWhich" wx:if="{{input._type == 'div'}}" nodes="{{input._text}}"></rich-text>
|
||||||
|
<image bindtap="onWhich" wx:if="{{input._type == 'img'}}" mode="aspectFit" src="{{input.src}}"></image>
|
||||||
|
<button bindtap="onWhich" wx:if="{{input._type == 'input' && input.type == 'button'}}" size="mini">{{input.value||input.name}}</button>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
@ -1,14 +1,27 @@
|
|||||||
page {
|
page {
|
||||||
color:white;
|
color:white; background-color:#272822;
|
||||||
font-size:14px;
|
font-size:14px; font-family:monospace;
|
||||||
font-family:monospace;
|
|
||||||
background-color:#272822;
|
|
||||||
white-space:pre;
|
white-space:pre;
|
||||||
}
|
}
|
||||||
|
|
||||||
view.action>view.item {
|
view.action>view.item {
|
||||||
float:left;
|
float:left;
|
||||||
}
|
}
|
||||||
|
view.output {
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
view.output view.item {
|
||||||
|
text-align:center;
|
||||||
|
font-size:18px;
|
||||||
|
padding:10px;
|
||||||
|
border:solid 1px green;
|
||||||
|
}
|
||||||
|
view.output view.list view.item {
|
||||||
|
background-color:darkgray;
|
||||||
|
margin-left:20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
view.option>view.item {
|
view.option>view.item {
|
||||||
padding:0;
|
padding:0;
|
||||||
border: 0;
|
border: 0;
|
||||||
@ -31,23 +44,6 @@ view.option view.select {
|
|||||||
/* width:40px; */
|
/* width:40px; */
|
||||||
padding:6px;
|
padding:6px;
|
||||||
}
|
}
|
||||||
view.option view.select picker {
|
|
||||||
}
|
|
||||||
view.option view.select picker view {
|
|
||||||
}
|
|
||||||
view.output {
|
|
||||||
clear:both;
|
|
||||||
}
|
|
||||||
view.output view.item {
|
|
||||||
text-align:center;
|
|
||||||
font-size:18px;
|
|
||||||
padding:10px;
|
|
||||||
border:solid 1px green;
|
|
||||||
}
|
|
||||||
view.output view.list view.item {
|
|
||||||
background-color:darkgray;
|
|
||||||
margin-left:20px;
|
|
||||||
}
|
|
||||||
view.output view.code {
|
view.output view.code {
|
||||||
margin-left:10px;
|
margin-left:10px;
|
||||||
padding:10px;
|
padding:10px;
|
||||||
@ -60,11 +56,7 @@ view.title {
|
|||||||
font-weight:bold;
|
font-weight:bold;
|
||||||
font-size:18px;
|
font-size:18px;
|
||||||
}
|
}
|
||||||
view.field {
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
}
|
|
||||||
tr {
|
tr {
|
||||||
display:flex;
|
display:flex;
|
||||||
justify-content:space-between;
|
justify-content:space-between;
|
||||||
|
@ -2,20 +2,20 @@ const kit = require("../../utils/kit.js")
|
|||||||
const app = getApp()
|
const app = getApp()
|
||||||
|
|
||||||
Page({
|
Page({
|
||||||
|
name: "action",
|
||||||
data: {
|
data: {
|
||||||
river: "", storm: "", title: "",
|
river: "", storm: "", title: "",
|
||||||
action: ["刷新", "扫码", "清屏", "串行", "并行"],
|
action: ["刷新", "扫码", "清屏", "串行", "并行"],
|
||||||
res: [], his: {}, inputs: {},
|
list: [], back: [],
|
||||||
},
|
},
|
||||||
action: {
|
action: {
|
||||||
"刷新": function(event, page) { var list = []
|
"刷新": function(event, page) { var list = []
|
||||||
app.data[page.data.river+page.data.storm] = page.data.res = list
|
app.data[page.data.river+page.data.storm] = page.data.list = list, page.data.back = []
|
||||||
|
app.requests("action", {cmds: [page.data.river, page.data.storm]}, function(msg) {
|
||||||
wx.showLoading()
|
msg.Table(function(line, index) {
|
||||||
app.request("action", {cmds: [page.data.river, page.data.storm]}, function(msg) { wx.hideLoading()
|
list.push(line), page.data.back.push([])
|
||||||
msg.Table(function(line, index) { list.push(line)
|
line.feature = kit.parseJSON(line.meta, {})
|
||||||
line.feature = JSON.parse(line.meta)
|
line.inputs = kit.parseJSON(line.list,[])
|
||||||
line.inputs = JSON.parse(line.list)
|
|
||||||
line.name = line.name.split(" ")[0]
|
line.name = line.name.split(" ")[0]
|
||||||
|
|
||||||
if (!line.inputs || line.inputs.length === 0) {
|
if (!line.inputs || line.inputs.length === 0) {
|
||||||
@ -30,121 +30,134 @@ Page({
|
|||||||
input.action = input.value.slice(1), input.value = ""
|
input.action = input.value.slice(1), input.value = ""
|
||||||
}
|
}
|
||||||
if (input._input == "select") {
|
if (input._input == "select") {
|
||||||
input.values = input.values || input.value && kit.Split(input.value)
|
input.values = input.values || kit.Split(input.value)
|
||||||
}
|
}
|
||||||
input._input == "button" && input.action == "auto" && page.run(event, index)
|
|
||||||
|
input._input == "button" && input.action == "auto" && kit.Timer(100, function() { page.run(event, index) })
|
||||||
})
|
})
|
||||||
}), page.data.his = [], page.setData({res: list})
|
}), page.setData({list: list})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
"扫码": function(event, page) { app.scans(function(res) {
|
"扫码": function(event, page) {
|
||||||
|
app.scans(function(res) {
|
||||||
switch (res.type) {
|
switch (res.type) {
|
||||||
case "button": res.name && page.onaction(event, res); break
|
case "button": res.name && page.onaction(event, res); break
|
||||||
default: return false
|
default: return false
|
||||||
} return true
|
} return true
|
||||||
}) },
|
|
||||||
"清屏": function(event, page) {
|
|
||||||
kit.List(page.data.res, function(field, index) { delete(field.msg) })
|
|
||||||
page.setData({res: page.data.res})
|
|
||||||
},
|
|
||||||
"串行": function(event, page, data, name) {
|
|
||||||
function cb(i) {
|
|
||||||
page.run(event, i, null, function() {i < page.data.res.length - 1&& cb(i+1)})
|
|
||||||
}
|
|
||||||
cb(0)
|
|
||||||
},
|
|
||||||
"并行": function(event, page, data, name) {
|
|
||||||
kit.List(page.data.res, function(field, index) {
|
|
||||||
page.run(event, index)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
"清屏": function(event, page) {
|
||||||
|
kit.List(page.data.list, function(item) { delete(item.msg) })
|
||||||
|
page.setData({list: page.data.list})
|
||||||
|
},
|
||||||
|
"串行": function(event, page) {
|
||||||
|
function cb(i) {
|
||||||
|
page.run(event, i, null, function() { i < page.data.list.length - 1 && cb(i+1) })
|
||||||
|
}; cb(0)
|
||||||
|
},
|
||||||
|
"并行": function(event, page) {
|
||||||
|
kit.List(page.data.list, function(item, index) { page.run(event, index) })
|
||||||
|
},
|
||||||
},
|
},
|
||||||
onaction: function(event, data) { data = data || event.target.dataset
|
onaction: function(event, data) { data = data || event.target.dataset
|
||||||
console.log("action", "river", data.name)
|
console.log("action", this.name, data.name)
|
||||||
this.action[data.name](event, this)
|
this.action[data.name](event, this)
|
||||||
},
|
},
|
||||||
|
|
||||||
run: function(event, order, cmd, cb) {var page = this, field = page.data.res[order]
|
run: function(event, order, cmd, cb) { var page = this, field = page.data.list[order]
|
||||||
var cmds = [page.data.river, page.data.storm, field.id || field.key]
|
var cmds = [page.data.river, page.data.storm, field.id||field.key]; if (!cmd) {
|
||||||
cmds = cmds.concat(cmd||kit.List(field.inputs, function(input) {
|
var cmd = kit.List(field.inputs, function(input) { if (input._input != "button") { return input.value } })
|
||||||
if (["text", "textarea", "select"].indexOf(input._input) > -1) {
|
page.data.back[order].push(cmd)
|
||||||
return input.value || ""
|
}; cmds = cmds.concat(cmd)
|
||||||
}
|
|
||||||
}))
|
|
||||||
|
|
||||||
for (var i = cmds.length-1; i > 0; i--) {
|
for (var i = cmds.length-1; i > 0; i--) { if (cmds[i] === "") { cmds.pop() } else { break } }
|
||||||
if (cmds[i] === "") {cmds.pop()} else {break}
|
|
||||||
}
|
|
||||||
|
|
||||||
wx.showLoading()
|
var option = event._option||{}; option.cmds = cmds
|
||||||
app.request("action?="+field.name, {cmds: cmds}, function(msg) {
|
app.requests("action?="+field.name, option, function(msg) {
|
||||||
wx.hideLoading()
|
field.msg = msg, page.setData({list: page.data.list})
|
||||||
page.data.res[order].msg = msg
|
|
||||||
page.setData({res: page.data.res})
|
|
||||||
typeof cb == "function" && cb(msg)
|
typeof cb == "function" && cb(msg)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
plugin: {
|
||||||
onBlur: function(event) {var page = this, data = event.target.dataset
|
scanQRCode: function(event, order, page, cmd) { app.scans(function(res) {
|
||||||
|
page.run(event, order, kit.Simple("action", cmd, res), function(msg) {
|
||||||
|
app.toast("添加成功"), page.run(event, order)
|
||||||
|
})
|
||||||
|
return true
|
||||||
|
}) },
|
||||||
|
getClipboardData: function(event, order, page, cmd) { wx.getClipboardData({success: function(res) {
|
||||||
|
page.run(event, order, kit.Simple("action", cmd, kit.parseJSON(res.data)), function() {
|
||||||
|
app.toast("添加成功"), page.run(event, order)
|
||||||
|
})
|
||||||
|
}}) },
|
||||||
|
getLocation: function(event, order, page, cmd) { app.location({success: function(res) {
|
||||||
|
res.latitude = parseInt(res.latitude * 100000)
|
||||||
|
res.longitude = parseInt(res.longitude * 100000)
|
||||||
|
page.run(event, order, kit.Simple("action", cmd, res), function() {
|
||||||
|
app.toast("添加成功"), page.run(event, order)
|
||||||
|
})
|
||||||
|
}}) },
|
||||||
},
|
},
|
||||||
onFocus: function(event) {},
|
|
||||||
onInput: function(event) { var page = this, data = event.target.dataset
|
onInput: function(event) { var page = this, data = event.target.dataset
|
||||||
page.data.res[data.order].inputs[data.index].value = event.detail.value
|
page.data.list[data.order].inputs[data.index].value = event.detail.value
|
||||||
page.setData({res: page.data.res})
|
|
||||||
},
|
},
|
||||||
onChange: function(event) { var page = this, data = event.target.dataset
|
onChange: function(event) { var page = this, data = event.target.dataset
|
||||||
page.data.res[data.order].inputs[data.index].index = parseInt(event.detail.value)
|
var input = page.data.list[data.order].inputs[data.index]
|
||||||
page.data.res[data.order].inputs[data.index].value = data.input.values[parseInt(event.detail.value)]
|
input.value = input.values[parseInt(event.detail.value)]
|
||||||
page.setData({res: page.data.res})
|
|
||||||
},
|
|
||||||
onEnter: function(event) {var page = this, data = event.target.dataset
|
|
||||||
page.data.res[data.order].inputs[data.index].value = event.detail.value
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onClick: function(event) { var page = this, data = event.target.dataset
|
onClick: function(event) { var page = this, data = event.target.dataset
|
||||||
var field = page.data.res[data.order]
|
var field = page.data.list[data.order]
|
||||||
|
var input = field.inputs[data.index]
|
||||||
|
|
||||||
if (field.feature[data.input.name]) {
|
if (field.feature[input.name]) {
|
||||||
app.data.insert = {
|
app.data.insert = {field: field, input: input, cb: function(res) {
|
||||||
field: field, input: data.input,
|
page.run(event, data.order, kit.Simple("action", input.name, res))
|
||||||
data: {}, list: field.feature[data.input.name], cb: function(res) {
|
}}
|
||||||
var list = ["action", data.input.name]
|
|
||||||
kit.Item(res, function(key, value) {
|
|
||||||
key && value && list.push(key, value)
|
|
||||||
})
|
|
||||||
page.run(event, data.order, list)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
app.jumps("insert/insert", {river: page.data.river, storm: page.data.storm, title: field.name})
|
app.jumps("insert/insert", {river: page.data.river, storm: page.data.storm, title: field.name})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (data.input.name) {
|
switch (input.name) {
|
||||||
case "返回":
|
case "返回": // 恢复命令
|
||||||
// 恢复命令
|
page.data.back[data.order].pop(); var line = page.data.back[data.order].pop()
|
||||||
page.data.his[data.order].pop()
|
|
||||||
var line = page.data.his[data.order].pop()
|
|
||||||
kit.List(field.inputs, function(input, index) {
|
kit.List(field.inputs, function(input, index) {
|
||||||
input.value = line && line[index] || ""
|
if (input._input != "button") { input.value = line&&line[index] || "" }
|
||||||
})
|
})
|
||||||
|
case "查看": // 执行命令
|
||||||
|
page.run(event, data.order)
|
||||||
|
break
|
||||||
default:
|
default:
|
||||||
// 执行命令
|
var cb = page.plugin[input.name]; if (typeof cb == "function") {
|
||||||
page.data.his[data.order].push(kit.List(field.inputs, function(input) {
|
cb(event, data.order, page, input.name)
|
||||||
return input.value
|
} else {
|
||||||
})) && page.run(event, data.order)
|
var arg = kit.List(field.inputs, function(input) { if (input._input != "button") { return input.value } })
|
||||||
|
page.run(event, data.order, ["action", input.name].concat(arg))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onWhich: function(event) {var page = this, data = event.target.dataset
|
onWhich: function(event) { var page = this, data = event.currentTarget.dataset
|
||||||
var field = page.data.res[data.order]
|
var field = page.data.list[data.order]; if (!field) { return }
|
||||||
field.inputs.forEach(function(input, index) {
|
|
||||||
if (input.name == data.field) {
|
var input = data.input && data.input[0]; if (input && input.type == "button") { var option = {}
|
||||||
// 导入参数
|
kit.List(field.inputs, function(input) { input._input != "button" && (option[input.name] = input.value) })
|
||||||
page.data.res[data.order].inputs[index].value = data.value
|
if (field.msg.append[0] == "key" && field.msg.append[1] == "value") {
|
||||||
page.setData({res: page.data.res})
|
kit.List(field.msg.key, function(key, index) { option[key] = field.msg.value[index] })
|
||||||
// 执行命令
|
} else {
|
||||||
input.action == "auto" && page.data.his[data.order].push(kit.List(field.inputs, function(input) {
|
kit.List(field.msg.append, function(key) { option[key] = field.msg[key][data.index] })
|
||||||
return input.value
|
}
|
||||||
})) && page.run(event, data.order)
|
event._option = option
|
||||||
|
|
||||||
|
var cb = page.plugin[input.name]
|
||||||
|
return typeof cb == "function"? cb(event, page, data, input):
|
||||||
|
page.run(event, data.order, ["action", input.name])
|
||||||
|
}
|
||||||
|
|
||||||
|
field.inputs.forEach(function(inputs, index) {
|
||||||
|
if (inputs.name == data.key) { inputs.value = data.value
|
||||||
|
page.setData({list: page.data.list})
|
||||||
|
inputs.action == "auto" && page.run(event, data.order)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -157,7 +170,7 @@ Page({
|
|||||||
app.title(options.title)
|
app.title(options.title)
|
||||||
|
|
||||||
var data = app.data[options.river+options.storm]
|
var data = app.data[options.river+options.storm]
|
||||||
if (data) { return this.setData({res: this.data.res = data}) }
|
if (data) { return this.setData({list: this.data.list = data}) }
|
||||||
this.onaction({}, {name: "刷新"})
|
this.onaction({}, {name: "刷新"})
|
||||||
},
|
},
|
||||||
onReady: function () {},
|
onReady: function () {},
|
||||||
|
@ -1,45 +1,39 @@
|
|||||||
<import src="../../app.wxml"/>
|
<import src="../../app.wxml"/>
|
||||||
|
|
||||||
<template is="action" data="{{action}}"></template>
|
<template is="action" data="{{action}}"></template>
|
||||||
|
|
||||||
<view class="output">
|
<view class="output">
|
||||||
<view class="field" wx:for="{{res}}" wx:key="name" wx:for-index="order" wx:for-item="field">
|
<view class="field" wx:for="{{list}}" wx:key="index" wx:for-index="order" wx:for-item="field">
|
||||||
<view class="title"><text>{{field.name}}({{field.help}})</text></view>
|
<view class="title"><text>{{field.name}}({{field.help}})</text></view>
|
||||||
<view class="option">
|
<view class="option">
|
||||||
<!-- 参数 -->
|
<!-- 参数 -->
|
||||||
<view class="item {{item._input}}" wx:for="{{field.inputs}}" wx:key="name">
|
<view class="item {{item._input}}" wx:for="{{field.inputs}}" wx:key="name">
|
||||||
<!-- 文本 -->
|
<!-- 文本 -->
|
||||||
<input wx:if="{{item._input == 'text'}}" type="text" value="{{item.value}}" placeholder="{{item.name}}"
|
<textarea wx:if="{{item._input == 'textarea'}}" value="{{item.value}}" placeholder="{{item.name}}"
|
||||||
bindtap="onClick" bindinput="onInput" bindconfirm="onEnter" data-order="{{order}}" data-index="{{index}}" data-input="{{item}}"/>
|
bindinput="onInput" data-index="{{index}}" data-order="{{order}}"></textarea>
|
||||||
|
|
||||||
<!-- 文本 -->
|
<!-- 文本 -->
|
||||||
<textarea wx:elif="{{item._input == 'textarea'}}" value="{{item.value}}" placeholder="{{item.name}}"
|
<input wx:elif="{{item._input == 'text'}}" type="text" value="{{item.value}}" placeholder="{{item.name}}"
|
||||||
bindtap="onClick" bindinput="onInput" data-field="{{field}}" data-order="{{order}}" data-index="{{index}}" data-input="{{item}}"></textarea>
|
bindinput="onInput" data-index="{{index}}" data-order="{{order}}"/>
|
||||||
|
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<picker wx:elif="{{item._input == 'select'}}" bindchange="onChange" value="{{item.index||0}}" range="{{item.values}}"
|
<picker wx:elif="{{item._input == 'select'}}" value="{{item.index||0}}" range="{{item.values}}"
|
||||||
data-field="{{field}}" data-order="{{order}}" data-index="{{index}}" data-input="{{item}}">
|
bindchange="onChange" data-index="{{index}}" data-order="{{order}}">
|
||||||
<view>{{item.values[item.index||0]}}</view>
|
<view>{{item.values[item.index||0]}}</view>
|
||||||
</picker>
|
</picker>
|
||||||
|
|
||||||
<!-- 按钮 -->
|
<!-- 按钮 -->
|
||||||
<button wx:elif="{{item._input == 'button'}}" size="mini" bindtap="onClick" data-field="{{field}}" data-order="{{order}}" data-index="{{index}}" data-input="{{item}}">{{item.value||item.name}}</button>
|
<button wx:elif="{{item._input == 'button'}}" size="mini"
|
||||||
|
bindtap="onClick" data-index="{{index}}" data-order="{{order}}">{{item.value||item.name}}</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 输出 -->
|
<!-- 输出 -->
|
||||||
<view class="output">
|
<view class="output">
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<table wx:if="{{field.msg}}">
|
<template is="table" data="{{msg: field.msg, order: order}}"></template>
|
||||||
<tr><th wx:for="{{field.msg.append}}" wx:key="name">{{item}}</th></tr>
|
|
||||||
<tr wx:for="{{field.msg._index}}" wx:key="name" wx:for-index="line">
|
|
||||||
<td wx:for="{{field.msg.append}}" bindtap="onWhich" data-value="{{field.msg[item][line]}}" data-index="{{line}}" data-field="{{item}}" data-order="{{order}}">{{field.msg[item][line]}}</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- 文本 -->
|
<!-- 文本 -->
|
||||||
<view class="output"><rich-text wx:for="{{field.msg.result}}" wx:key="name" nodes="{{item}}"></rich-text></view>
|
<view class="code"><rich-text wx:for="{{field.msg.result}}" wx:key="index" nodes="{{item}}"></rich-text></view>
|
||||||
<!-- <view class="code" wx:elif="{{field.msg.result}}"><text wx:for="{{field.msg.result}}" wx:key="name">{{item}}</text></view> -->
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -4,3 +4,11 @@ view.option view.item {
|
|||||||
view.option view.item.select {
|
view.option view.item.select {
|
||||||
padding:3px;
|
padding:3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
div.story[data-type=spark] {
|
||||||
|
background-color:#2169a9a6; color:white;
|
||||||
|
box-shadow: 4px 4px 10px 1px #626bd0;
|
||||||
|
padding:4px 10px; margin:10px 0px;
|
||||||
|
border-left:solid 4px blue;
|
||||||
|
}
|
||||||
|
@ -3,30 +3,29 @@ const app = getApp()
|
|||||||
|
|
||||||
Page({
|
Page({
|
||||||
data: {
|
data: {
|
||||||
action: ["扫码"],
|
|
||||||
field: {},
|
|
||||||
insert: [],
|
insert: [],
|
||||||
|
action: ["扫码"],
|
||||||
},
|
},
|
||||||
action: {
|
action: {
|
||||||
"扫码": function(event, page, data, name) {
|
"扫码": function(event, page) { app.scans(function(res) {
|
||||||
app.scans(function(res) {
|
switch (res.type) {
|
||||||
res["sess.river"] = page.data.river
|
case "button": res.name && page.onaction(event, res); break
|
||||||
res["sess.storm"] = page.data.storm
|
default: return false
|
||||||
app.request("mp/login/scan", res)
|
} return true
|
||||||
page.onaction(event, res, res.name)
|
}) },
|
||||||
})
|
|
||||||
},
|
},
|
||||||
},
|
onaction: function(event, data) { data = data || event.target.dataset
|
||||||
onaction: function(event, data, name) {
|
console.log("action", "river", data.name)
|
||||||
data = data || event.target.dataset, name = name || data.name
|
this.action[data.name](event, this)
|
||||||
console.log("action", "action", name)
|
|
||||||
this.action[name](event, this, data)
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onInput: function(event) {var page = this, data = event.target.dataset
|
onInput: function(event) {var page = this, data = event.target.dataset
|
||||||
app.data.insert[data.index].value = event.detail.value
|
app.data.insert.list[data.index].value = event.detail.value
|
||||||
|
},
|
||||||
|
onChange: function(event) { var page = this, data = event.target.dataset
|
||||||
|
var input = app.data.insert[data.index]
|
||||||
|
input.value = input.values[parseInt(event.detail.value)]
|
||||||
},
|
},
|
||||||
onFocus: function(event) {},
|
|
||||||
onConfirm: function (event) { var page = this
|
onConfirm: function (event) { var page = this
|
||||||
kit.List(page.data.insert, function(item) {
|
kit.List(page.data.insert, function(item) {
|
||||||
app.data.insert.data[item.name] = item.value
|
app.data.insert.data[item.name] = item.value
|
||||||
@ -34,47 +33,22 @@ Page({
|
|||||||
app.data.insert.cb(app.data.insert.data)
|
app.data.insert.cb(app.data.insert.data)
|
||||||
wx.navigateBack()
|
wx.navigateBack()
|
||||||
},
|
},
|
||||||
onLoad: function (options) {
|
onLoad: function (options) { app.title(options.title)
|
||||||
this.data.insert = app.data.insert.list
|
console.log("page", "insert", options)
|
||||||
|
|
||||||
var p = app.data.insert.input.action
|
|
||||||
if (p.indexOf("@") == 0) {
|
|
||||||
var cb = this.plugin[p.slice(1,-1)]; cb && cb(this)
|
|
||||||
}
|
|
||||||
var cb = this.plugin[p]; cb && cb(this)
|
|
||||||
kit.List(app.data.insert.list, function(item) {
|
kit.List(app.data.insert.list, function(item) {
|
||||||
item.action = item.action || item.value
|
|
||||||
item.value && item.value.indexOf("@") == 0 && (item.value = "")
|
item.value && item.value.indexOf("@") == 0 && (item.value = "")
|
||||||
app.data.insert.data[item.name] = item.value
|
app.data.insert.data[item.name] = item.value
|
||||||
|
item.action = item.action || item.value
|
||||||
})
|
})
|
||||||
console.log("page", "insert", options)
|
|
||||||
app.title(options.title)
|
this.data.insert = app.data.insert.list
|
||||||
this.setData(this.data)
|
this.setData(this.data)
|
||||||
},
|
},
|
||||||
onReady: function () {},
|
onReady: function () {},
|
||||||
onShow: function () {},
|
onShow: function () {},
|
||||||
onHide: function () {},
|
onHide: function () {},
|
||||||
onUnload: function () {},
|
onUnload: function () {},
|
||||||
onPullDownRefresh: function () {},
|
|
||||||
onReachBottom: function () {},
|
onReachBottom: function () {},
|
||||||
|
onPullDownRefresh: function () {},
|
||||||
plugin: {
|
|
||||||
getLocation: function(page, data) { app.location({success: function(res) {
|
|
||||||
res.latitude = parseInt(res.latitude * 100000)
|
|
||||||
res.longitude = parseInt(res.longitude * 100000)
|
|
||||||
kit.List(page.data.insert, function(item) {
|
|
||||||
res[item.name] && (item.value = res[item.name])
|
|
||||||
}), page.setData(page.data)
|
|
||||||
}}) },
|
|
||||||
scanQRCode: function(page) { app.scans(function(res) {
|
|
||||||
kit.List(page.data.insert, function(item) {
|
|
||||||
res[item.name] && (item.value = res[item.name])
|
|
||||||
}), page.setData(page.data)
|
|
||||||
}) },
|
|
||||||
paste: function(page, data) { wx.getClipboardData({success: function(res) {
|
|
||||||
kit.List(page.data.insert, function(item) {
|
|
||||||
res[item.name] && (item.value = res[item.name])
|
|
||||||
}), page.setData(page.data)
|
|
||||||
}}) },
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
|
@ -2,23 +2,24 @@
|
|||||||
<template is="action" data="{{action}}"></template>
|
<template is="action" data="{{action}}"></template>
|
||||||
|
|
||||||
<view class="output">
|
<view class="output">
|
||||||
<view class="item" wx:for="{{insert}}" wx:key="name">
|
<view class="item" wx:for="{{insert}}" wx:key="index">
|
||||||
<!-- 文本 -->
|
<!-- 文本 -->
|
||||||
<input wx:if="{{item._input == 'text'}}" type="text" value="{{item.value}}" placeholder="{{item.name}}"
|
<textarea wx:if="{{item._input == 'textarea'}}" value="{{item.value}}" placeholder="{{item.name}}"
|
||||||
bindtap="onClick" bindinput="onInput" bindconfirm="onEnter" data-index="{{index}}" data-input="{{item}}"/>
|
bindinput="onInput" data-index="{{index}}"></textarea>
|
||||||
|
|
||||||
<!-- 文本 -->
|
<!-- 文本 -->
|
||||||
<textarea wx:elif="{{item._input == 'textarea'}}" value="{{item.value}}" placeholder="{{item.name}}"
|
<input wx:elif="{{item._input == 'text'}}" type="text" value="{{item.value}}" placeholder="{{item.name}}"
|
||||||
bindtap="onClick" bindinput="onInput" data-index="{{index}}" data-input="{{item}}"></textarea>
|
bindinput="onInput" data-index="{{index}}"/>
|
||||||
|
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<picker wx:elif="{{item._input == 'select'}}" bindchange="onChange" value="{{item.index||0}}" range="{{item.values}}"
|
<picker wx:elif="{{item._input == 'select'}}" value="{{item.index||0}}" range="{{item.values}}"
|
||||||
data-index="{{index}}" data-input="{{item}}">
|
bindchange="onChange" data-index="{{index}}">
|
||||||
<view>{{item.values[item.index||0]}}</view>
|
<view>{{item.values[item.index||0]}}</view>
|
||||||
</picker>
|
</picker>
|
||||||
|
|
||||||
<!-- 按钮 -->
|
<!-- 按钮 -->
|
||||||
<button wx:elif="{{item._input == 'button'}}" size="mini" bindtap="onClick" data-index="{{index}}" data-input="{{item}}">{{item.name||item.value}}</button>
|
<button wx:elif="{{item._input == 'button'}}" size="mini"
|
||||||
|
bindtap="onClick" data-index="{{index}}">{{item.name||item.value}}</button>
|
||||||
</view>
|
</view>
|
||||||
<button bindtap="onConfirm">提交</button>
|
<button bindtap="onConfirm">提交</button>
|
||||||
<button bindtap="onCancel">取消</button>
|
<button bindtap="onCancel">取消</button>
|
||||||
|
@ -2,44 +2,46 @@ const kit = require("../../utils/kit.js")
|
|||||||
const app = getApp()
|
const app = getApp()
|
||||||
|
|
||||||
Page({
|
Page({
|
||||||
|
name: "river",
|
||||||
data: {
|
data: {
|
||||||
river: {},
|
|
||||||
action: ["刷新", "扫码", "登录"],
|
action: ["刷新", "扫码", "登录"],
|
||||||
|
list: [],
|
||||||
},
|
},
|
||||||
action: {
|
action: {
|
||||||
"刷新": function(event, page) { wx.showLoading()
|
"刷新": function(event, page) {
|
||||||
app.request("river", {}, function(msg) { wx.hideLoading()
|
app.requests(page.name, {}, function(msg) {
|
||||||
page.setData({river: msg.Table()})
|
page.setData({list: msg.Table()})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
"扫码": function(event, page) { app.scans(function(res) {
|
"扫码": function(event, page) {
|
||||||
|
app.scans(function(res) {
|
||||||
switch (res.type) {
|
switch (res.type) {
|
||||||
case "button": res.name && page.onaction(event, res); break
|
case "button": res.name && page.onaction(event, res); break
|
||||||
default: return false
|
default: return false
|
||||||
} return true
|
} return true
|
||||||
}) },
|
})
|
||||||
|
},
|
||||||
"登录": function(event, page) { app.conf.sessid = ""
|
"登录": function(event, page) { app.conf.sessid = ""
|
||||||
app.userinfo(function(res) { page.onaction(event, {name: "刷新"}) })
|
app.userinfo(function(res) { page.onaction(event, {name: "刷新"}) })
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
onaction: function(event, data) { data = data || event.target.dataset
|
onaction: function(event, data) { data = data || event.target.dataset
|
||||||
console.log("action", "river", data.name)
|
console.log("action", this.name, data.name)
|
||||||
this.action[data.name](event, this)
|
this.action[data.name](event, this)
|
||||||
},
|
},
|
||||||
ondetail: function(event, data) { data = data || event.target.dataset
|
ondetail: function(event, data) { data = data || event.target.dataset
|
||||||
var page = this, river = page.data.river[data.index]
|
var page = this, item = page.data.list[data.index]
|
||||||
river._show = !river._show; if (river.list) {
|
item._show = !item._show; if (item.list) {
|
||||||
return page.setData({river: page.data.river})
|
return page.setData({list: page.data.list})
|
||||||
}
|
}
|
||||||
|
|
||||||
wx.showLoading()
|
app.requests(page.name, {cmds: [item.hash, "tool"]}, function(msg) {
|
||||||
app.request("river", {cmds: [river.hash, "tool"]}, function(msg) { wx.hideLoading()
|
item.list = msg.Table(), page.setData({list: page.data.list})
|
||||||
river.list = msg.Table(), page.setData({river: page.data.river})
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
onchange: function(event, data) { data = data || event.target.dataset
|
onchange: function(event, data) { data = data || event.target.dataset
|
||||||
var river = this.data.river[data.index]; var storm = river.list[data.i]
|
var item = this.data.list[data.index]; var tool = item.list[data.i]
|
||||||
app.jumps("action/action", {river: river.hash, storm: storm.hash, title: river.name+"."+storm.name})
|
app.jumps("action/action", {river: item.hash, storm: tool.hash, title: item.name+"."+tool.name})
|
||||||
},
|
},
|
||||||
|
|
||||||
onLoad: function (options) { this.onaction({}, {name: "刷新"}) },
|
onLoad: function (options) { this.onaction({}, {name: "刷新"}) },
|
||||||
|
@ -1,12 +1,4 @@
|
|||||||
<import src="../../app.wxml"/>
|
<import src="../../app.wxml"/>
|
||||||
<template is="action" data="{{action}}"></template>
|
<template is="action" data="{{action}}"></template>
|
||||||
|
<template is="list" data="{{list}}"></template>
|
||||||
|
|
||||||
<view class="output">
|
|
||||||
<view class="item" wx:for="{{river}}" wx:key="index">
|
|
||||||
<view class="item" bindtap="ondetail" data-index="{{index}}">{{item.name}}</view>
|
|
||||||
<view class="list" wx:if="{{item._show}}">
|
|
||||||
<view class="item" bindtap="onchange" wx:for="{{item.list}}" wx:for-index="i" wx:key="i"
|
|
||||||
data-index="{{index}}" data-i="{{i}}">{{item.name}}</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
module.exports = {
|
|
||||||
onimport: function() {},
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
hello wrold
|
|
@ -66,41 +66,14 @@
|
|||||||
"list": []
|
"list": []
|
||||||
},
|
},
|
||||||
"miniprogram": {
|
"miniprogram": {
|
||||||
|
"current": -1,
|
||||||
"list": [
|
"list": [
|
||||||
{
|
|
||||||
"id": 0,
|
|
||||||
"name": "pages/action/action",
|
|
||||||
"pathName": "pages/action/action",
|
|
||||||
"query": "river=c796cd&storm=9092d5",
|
|
||||||
"scene": 1008
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"name": "action",
|
|
||||||
"pathName": "pages/action/action",
|
|
||||||
"query": "river=d022b3&storm= c22d21",
|
|
||||||
"scene": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"name": "pages/river/river",
|
|
||||||
"pathName": "pages/river/river",
|
|
||||||
"query": "river=c796cd&storm=9092d5",
|
|
||||||
"scene": null
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": -1,
|
"id": -1,
|
||||||
"name": "pages/scans/scans",
|
|
||||||
"pathName": "pages/scans/scans",
|
|
||||||
"query": "river=c796cd&storm=9092d5",
|
|
||||||
"scene": null
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 4,
|
|
||||||
"name": "pages/action/action",
|
"name": "pages/action/action",
|
||||||
"pathName": "pages/action/action",
|
"pathName": "pages/action/action",
|
||||||
"query": "river=d82c1d&storm=12d1d7&title=mac.paste",
|
"query": "river=2d506d&storm=8271a3&title=hi.scan",
|
||||||
"scene": null
|
"scene": 1001
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,17 @@
|
|||||||
|
function shy(help, meta, list, cb) {
|
||||||
|
var index = 0, args = arguments; function next(check) {
|
||||||
|
if (index < args.length && (!check || check == typeof args[index])) {
|
||||||
|
return args[index++]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cb = args[args.length-1] || function() {}
|
||||||
|
cb.help = next("string") || ""
|
||||||
|
cb.meta = next("object") || {}
|
||||||
|
cb.list = next("object") || []
|
||||||
|
return cb
|
||||||
|
}; var _can_name = ""
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
Number: function(d, n) {var res = [];
|
Number: function(d, n) {var res = [];
|
||||||
while (d > 0) {res.push(d % 10); d = parseInt(d / 10); n--}
|
while (d > 0) {res.push(d % 10); d = parseInt(d / 10); n--}
|
||||||
@ -27,9 +41,7 @@ module.exports = {
|
|||||||
return typeof cbs == "function" && cbs(res), res
|
return typeof cbs == "function" && cbs(res), res
|
||||||
},
|
},
|
||||||
Item: function(list, cb, cbs) {
|
Item: function(list, cb, cbs) {
|
||||||
for (var k in list) {
|
for (var k in list) { cb(k, list[k]) }
|
||||||
cb(k, list[k])
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
Value: function(data, key, value) {
|
Value: function(data, key, value) {
|
||||||
if (data == undefined) { return }
|
if (data == undefined) { return }
|
||||||
@ -46,8 +58,35 @@ module.exports = {
|
|||||||
p = p[ls[0]], ls = ls.slice(1)
|
p = p[ls[0]], ls = ls.slice(1)
|
||||||
}; return p
|
}; return p
|
||||||
},
|
},
|
||||||
|
Simple: function() { var res = []
|
||||||
|
for (var i = 0; i < arguments.length; i++) {
|
||||||
|
var arg = arguments[i]; switch (typeof arguments[i]) {
|
||||||
|
case "number": res.push(arg); break
|
||||||
|
case "string": res.push(arg); break
|
||||||
|
case "object":
|
||||||
|
if (arg.length > 0) {
|
||||||
|
res = res.concat(arg)
|
||||||
|
} else {
|
||||||
|
for (var k in arg) { res.push(k, arg[k]) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
},
|
||||||
|
|
||||||
Split: function(str) { if (!str || !str.length) { return [] }
|
Timer: shy("定时器, value, [1,2,3,4], {value, length}", function(interval, cb, cbs) {
|
||||||
|
interval = typeof interval == "object"? interval || []: [interval]
|
||||||
|
var timer = {stop: false}; function loop(timer, i) {
|
||||||
|
if (timer.stop || i >= interval.length && interval.length >= 0) {
|
||||||
|
return typeof cbs == "function" && cbs(timer, interval)
|
||||||
|
}
|
||||||
|
return typeof cb == "function" && cb(timer, interval.interval||interval[i], i, interval)?
|
||||||
|
typeof cbs == "function" && cbs(timer, interval): setTimeout(function() { loop(timer, i+1) }, interval.interval||interval[i+1])
|
||||||
|
}
|
||||||
|
setTimeout(function() { loop(timer, 0) }, interval.interval||interval[0])
|
||||||
|
return timer
|
||||||
|
}),
|
||||||
|
Split: shy("分词器", function(str) { if (!str || !str.length) { return [] }
|
||||||
var opt = {detail: false}, arg = []; for (var i = 1; i < arguments.length; i++) {
|
var opt = {detail: false}, arg = []; for (var i = 1; i < arguments.length; i++) {
|
||||||
typeof arguments[i] == "object"? opt = arguments[i]: arg.push(arguments[i])
|
typeof arguments[i] == "object"? opt = arguments[i]: arg.push(arguments[i])
|
||||||
}
|
}
|
||||||
@ -78,7 +117,7 @@ module.exports = {
|
|||||||
if (left == "") {
|
if (left == "") {
|
||||||
left = list[i], space = false, begin = i+1
|
left = list[i], space = false, begin = i+1
|
||||||
} else if (left == list[i]) {
|
} else if (left == list[i]) {
|
||||||
res.push({text: list.slice(begin, i), type: "string", left: left, right: left})
|
opt.detail? res.push({text: list.slice(begin, i), type: "string", left: left, right: left}): res.push(list.slice(begin, i))
|
||||||
left = "", space = true, begin = i+1
|
left = "", space = true, begin = i+1
|
||||||
}
|
}
|
||||||
} else if (sups[list[i]]) {
|
} else if (sups[list[i]]) {
|
||||||
@ -109,8 +148,9 @@ module.exports = {
|
|||||||
res.push(list.slice(begin))
|
res.push(list.slice(begin))
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
},
|
}),
|
||||||
parseJSON: function(str) { var res
|
parseJSON: shy("解析器", function(str, def) { var res
|
||||||
|
if (!str) { return def||{} }
|
||||||
if (typeof str == "object") { return str }
|
if (typeof str == "object") { return str }
|
||||||
if (str.indexOf("http") == 0) { var ls = str.split("?")
|
if (str.indexOf("http") == 0) { var ls = str.split("?")
|
||||||
res = {type: "link", name: "", text: str}
|
res = {type: "link", name: "", text: str}
|
||||||
@ -127,6 +167,6 @@ module.exports = {
|
|||||||
res = {type: "text", text: str}
|
res = {type: "text", text: str}
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
},
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user