mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt mp
This commit is contained in:
parent
0d7b3c5c5f
commit
d6cfbbb924
17
lib/base.js
17
lib/base.js
@ -18,23 +18,16 @@ Volcanos("base", {help: "数据类型",
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
Eq: function(obj, other) { var self = arguments.callee
|
Eq: function(obj, other) { var self = arguments.callee
|
||||||
// undefined null
|
if (typeof obj != typeof other) { return false }
|
||||||
// string number boolen
|
|
||||||
// object function
|
|
||||||
if (typeof obj != typeof other) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if (typeof obj == "object") {
|
if (typeof obj == "object") {
|
||||||
if (obj.length != other.length) { return false }
|
if (obj.length != other.length) { return false }
|
||||||
for (var i = 0; i < obj.length; i++) {
|
for (var i = 0; i < obj.length; i++) {
|
||||||
if (!self(obj[i], other[i])) {
|
if (!self(obj[i], other[i])) { return false }
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var k in obj) {
|
for (var k in obj) {
|
||||||
if (!self(obj[k], other[k])) {
|
if (!self(obj[k], other[k])) { return false }
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -26,22 +26,21 @@ App({
|
|||||||
},
|
},
|
||||||
Data: function(item, index) {
|
Data: function(item, index) {
|
||||||
var text = msg[item]&&msg[item][index]||""
|
var text = msg[item]&&msg[item][index]||""
|
||||||
var list = kit.Split(text, " ", "<=/>")
|
var data = {_type: "text", _text: text}
|
||||||
|
if (text.indexOf("<") != 0) { return [data] }
|
||||||
|
|
||||||
var res = [], data = {_type: "text", _text: text}
|
var res = [], list = kit.Split(text, " ", "<=/>")
|
||||||
for (var i = 0; i < list.length; i++) {
|
for (var i = 0; i < list.length; i++) {
|
||||||
if (list[i] == "<") { data = {}
|
if (list[i] == "<") { data = {}
|
||||||
if (list[i] == "/") { i++ } else { res.push(data) }
|
if (list[i] == "/") { i++ } else { res.push(data) }
|
||||||
data._type = list[i+1]
|
data._type = list[i+1], data._text = text, i++
|
||||||
data._text = text
|
continue
|
||||||
if (data._type == "div") { break }
|
} else if (list[i] == ">") {
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if (list[i] == ">") {
|
if (list[i+1] == "=") {
|
||||||
|
data[list[i]] = list[i+2], i += 2
|
||||||
} else if (list[i+1] == "=") {
|
|
||||||
data[list[i]] = list[i+2]
|
|
||||||
i += 2
|
|
||||||
} else {
|
} else {
|
||||||
data[list[i]] = list[i]
|
data[list[i]] = list[i]
|
||||||
}
|
}
|
||||||
@ -78,10 +77,6 @@ App({
|
|||||||
}})
|
}})
|
||||||
}}) })
|
}}) })
|
||||||
},
|
},
|
||||||
location: function(arg) { wx.chooseLocation(arg) },
|
|
||||||
clipboard: function(cb) { wx.getClipboardData({success: function(res) {
|
|
||||||
typeof cb == "function" && cb(kit.parseJSON(res.data))
|
|
||||||
}}) },
|
|
||||||
|
|
||||||
title: function(title) { wx.setNavigationBarTitle({title: title, success: function() {}})},
|
title: function(title) { wx.setNavigationBarTitle({title: title, success: function() {}})},
|
||||||
modal: function(title, content, cb) { wx.showModal({title: title||"", content: content||"", success: cb})},
|
modal: function(title, content, cb) { wx.showModal({title: title||"", content: content||"", success: cb})},
|
||||||
@ -107,6 +102,16 @@ App({
|
|||||||
}
|
}
|
||||||
}})
|
}})
|
||||||
},
|
},
|
||||||
|
clipboard: function(cb) { wx.getClipboardData({success: function(res) {
|
||||||
|
typeof cb == "function" && cb(kit.parseJSON(res.data))
|
||||||
|
}}) },
|
||||||
|
location: function(cb) { wx.chooseLocation({success: function(res) {
|
||||||
|
typeof cb == "function" && cb({
|
||||||
|
name: res.name, text: res.address,
|
||||||
|
latitude: parseInt(res.latitude * 100000),
|
||||||
|
longitude: parseInt(res.longitude * 100000),
|
||||||
|
})
|
||||||
|
}}) },
|
||||||
|
|
||||||
onLaunch: function() {
|
onLaunch: function() {
|
||||||
this.conf.sessid = wx.getStorageSync("sessid")
|
this.conf.sessid = wx.getStorageSync("sessid")
|
||||||
|
@ -18,15 +18,51 @@
|
|||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template name="field">
|
||||||
|
<view class="output">
|
||||||
|
<view class="field" wx:for="{{list}}" wx:for-index="order" wx:for-item="field" wx:key="index">
|
||||||
|
<view class="title"><text>{{field.name}}({{field.help}})</text></view>
|
||||||
|
<view class="option"> <!-- 参数 -->
|
||||||
|
<view class="item {{item._input}}" wx:for="{{field.inputs}}" wx:key="name">
|
||||||
|
<!-- 文本 -->
|
||||||
|
<textarea wx:if="{{item._input == 'textarea'}}" placeholder="{{item.name}}" value="{{item.value}}"
|
||||||
|
bindinput="onInput" data-index="{{index}}" data-order="{{order}}"></textarea>
|
||||||
|
|
||||||
|
<!-- 文本 -->
|
||||||
|
<input wx:elif="{{item._input == 'text'}}" placeholder="{{item.name}}" value="{{item.value}}" type="text"
|
||||||
|
bindinput="onInput" data-index="{{index}}" data-order="{{order}}"/>
|
||||||
|
|
||||||
|
<!-- 列表 -->
|
||||||
|
<picker wx:elif="{{item._input == 'select'}}" range="{{item.values}}" value="{{item.index||0}}"
|
||||||
|
bindchange="onChange" data-index="{{index}}" data-order="{{order}}">
|
||||||
|
<view>{{item.values[item.index||0]}}</view>
|
||||||
|
</picker>
|
||||||
|
|
||||||
|
<!-- 按钮 -->
|
||||||
|
<button wx:elif="{{item._input == 'button'}}" size="mini"
|
||||||
|
bindtap="onClick" data-index="{{index}}" data-order="{{order}}">{{item.value||item.name}}</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="output"> <!-- 输出 -->
|
||||||
|
<!-- 表格 -->
|
||||||
|
<template is="table" data="{{order: order, msg: field.msg}}"></template>
|
||||||
|
|
||||||
|
<!-- 文本 -->
|
||||||
|
<view class="code"><rich-text wx:for="{{field.msg.result}}" wx:key="index" nodes="{{item}}"></rich-text></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template name="table">
|
<template name="table">
|
||||||
<table wx:if="{{msg}}">
|
<table wx:if="{{msg}}">
|
||||||
<tr><th wx:for="{{msg.append}}" wx:key="index">{{item}}</th></tr>
|
<tr><th wx:for="{{msg.append}}" wx:key="index">{{item}}</th></tr>
|
||||||
<tr wx:for="{{msg._index}}" wx:key="index" wx:for-index="line">
|
<tr wx:for="{{msg._index}}" wx:key="index">
|
||||||
<td bindtap="onWhich" wx:for="{{msg.append}}" wx:key="index"
|
<td wx:for="{{msg.append}}" wx:for-index="i" wx:key="index">
|
||||||
data-value="{{msg[item][line]}}" data-key="{{item}}" data-index="{{line}}" data-order="{{order}}" data-input="{{msg._view[item][line]}}"
|
<view class="which" bindtap="onWhich" wx:for="{{msg._view[item][index]}}" wx:for-item="input" wx:for-index="i" wx:key="i"
|
||||||
>
|
data-input="{{input}}" data-value="{{input._text}}" data-key="{{item}}" data-index="{{index}}" data-order="{{order}}">
|
||||||
<view bindtap="onWhich" wx:for="{{msg._view[item][line]}}" wx:key="index">
|
<template data="{{input}}" is="input"></template>
|
||||||
<template bindtap="onWhich" is="input" data="{{input: item}}"></template>
|
|
||||||
</view>
|
</view>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -1,76 +1,66 @@
|
|||||||
page {
|
page {
|
||||||
color:white; background-color:#272822;
|
background-color:#272822; color:white;
|
||||||
font-size:14px; font-family:monospace;
|
font-size:14px; font-family:monospace;
|
||||||
white-space:pre;
|
}
|
||||||
|
view.title {
|
||||||
|
font-size:18px; font-weight:bold;
|
||||||
|
margin-top:20px; margin-bottom:10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
view.action>view.item {
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
view.output {
|
view.output {
|
||||||
|
max-width:-webkit-fill-available;
|
||||||
|
overflow:auto;
|
||||||
clear:both;
|
clear:both;
|
||||||
}
|
}
|
||||||
view.output view.item {
|
view.output view.item {
|
||||||
text-align:center;
|
font-size:18px; text-align:center;
|
||||||
font-size:18px;
|
padding:10px; border:solid 1px green;
|
||||||
padding:10px;
|
|
||||||
border:solid 1px green;
|
|
||||||
}
|
}
|
||||||
view.output view.list view.item {
|
view.output view.list view.item {
|
||||||
background-color:darkgray;
|
background-color:darkgray;
|
||||||
margin-left:20px;
|
margin-left:20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
view.option>view.item {
|
|
||||||
padding:0;
|
|
||||||
border: 0;
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
view.option input {
|
|
||||||
width:80px;
|
|
||||||
margin:2px;
|
|
||||||
padding:2px;
|
|
||||||
border:solid 1px green;
|
|
||||||
}
|
|
||||||
view.option view.textarea {
|
|
||||||
clear:both;
|
|
||||||
width:calc(100% - 2px);
|
|
||||||
border:solid 1px green;
|
|
||||||
}
|
|
||||||
view.option view.select {
|
|
||||||
border:solid 1px green;
|
|
||||||
float:left;
|
|
||||||
/* width:40px; */
|
|
||||||
padding:6px;
|
|
||||||
}
|
|
||||||
view.output view.code {
|
view.output view.code {
|
||||||
margin-left:10px;
|
margin-left:10px; padding:10px;
|
||||||
padding:10px;
|
|
||||||
border-left:solid 2px cyan;
|
border-left:solid 2px cyan;
|
||||||
}
|
}
|
||||||
|
|
||||||
view.title {
|
view.action view.item {
|
||||||
margin-top:20px;
|
float:left; padding:0;
|
||||||
margin-bottom:10px;
|
}
|
||||||
font-weight:bold;
|
view.option view.item {
|
||||||
font-size:18px;
|
border:0; padding:0;
|
||||||
|
float:left; margin:2px;
|
||||||
|
}
|
||||||
|
view.option view.item.textarea {
|
||||||
|
border:solid 1px green;
|
||||||
|
width:calc(100% - 2px);
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
view.option view.item.select {
|
||||||
|
border:solid 1px green; padding:6px;
|
||||||
|
}
|
||||||
|
view.option view.item button {
|
||||||
|
height:29px;
|
||||||
|
}
|
||||||
|
view.option view.item input {
|
||||||
|
border:solid 1px green;
|
||||||
|
width:80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr {
|
tr {
|
||||||
|
text-align:center; white-space:nowrap;
|
||||||
display:flex;
|
display:flex;
|
||||||
justify-content:space-between;
|
|
||||||
}
|
}
|
||||||
th {
|
th {
|
||||||
padding:5px;
|
border:solid 1px red; padding:5px;
|
||||||
width:100%;
|
width:100%;
|
||||||
text-align:center;
|
|
||||||
border:solid 1px red;
|
|
||||||
}
|
}
|
||||||
td {
|
td {
|
||||||
padding:5px;
|
border:solid 1px green; padding:5px;
|
||||||
width:100%;
|
width:100%;
|
||||||
text-align:center;
|
}
|
||||||
border:solid 1px green;
|
td view.which {
|
||||||
|
float:left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ Page({
|
|||||||
},
|
},
|
||||||
action: {
|
action: {
|
||||||
"刷新": function(event, page) { var list = []
|
"刷新": function(event, page) { var list = []
|
||||||
app.data[page.data.river+page.data.storm] = page.data.list = list, page.data.back = []
|
app.data[[page.data.river, page.data.storm].join(".")] = page.data.list = list, page.data.back = []
|
||||||
app.requests("action", {cmds: [page.data.river, page.data.storm]}, function(msg) {
|
app.requests(page.name, {cmds: [page.data.river, page.data.storm]}, function(msg) {
|
||||||
msg.Table(function(line, index) {
|
msg.Table(function(line, index) {
|
||||||
list.push(line), page.data.back.push([])
|
list.push(line), page.data.back.push([])
|
||||||
line.feature = kit.parseJSON(line.meta, {})
|
line.feature = kit.parseJSON(line.meta, {})
|
||||||
@ -66,7 +66,7 @@ Page({
|
|||||||
run: function(event, order, cmd, cb) { var page = this, field = page.data.list[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]; if (!cmd) {
|
var cmds = [page.data.river, page.data.storm, field.id||field.key]; if (!cmd) {
|
||||||
var cmd = kit.List(field.inputs, function(input) { if (input._input != "button") { return input.value } })
|
var cmd = kit.List(field.inputs, function(input) { if (input._input != "button") { return input.value } })
|
||||||
page.data.back[order].push(cmd)
|
kit.EQ(page.data.back[page.data.back.length-1], cmd) || page.data.back[order].push(cmd)
|
||||||
}; cmds = cmds.concat(cmd)
|
}; cmds = cmds.concat(cmd)
|
||||||
|
|
||||||
for (var i = cmds.length-1; i > 0; i--) { if (cmds[i] === "") { cmds.pop() } else { break } }
|
for (var i = cmds.length-1; i > 0; i--) { if (cmds[i] === "") { cmds.pop() } else { break } }
|
||||||
@ -77,40 +77,19 @@ Page({
|
|||||||
typeof cb == "function" && cb(msg)
|
typeof cb == "function" && cb(msg)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
plugin: {
|
|
||||||
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) { app.clipboard(function(res) {
|
|
||||||
page.run(event, order, kit.Simple("action", cmd, res), 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)
|
|
||||||
})
|
|
||||||
}}) },
|
|
||||||
},
|
|
||||||
|
|
||||||
onInput: function(event) { var page = this, data = event.target.dataset
|
onInput: function(event) { var page = this, data = event.target.dataset
|
||||||
page.data.list[data.order].inputs[data.index].value = event.detail.value
|
var input = page.data.list[data.order].inputs[data.index]
|
||||||
|
input.value = event.detail.value
|
||||||
},
|
},
|
||||||
onChange: function(event) { var page = this, data = event.target.dataset
|
onChange: function(event) { var page = this, data = event.target.dataset
|
||||||
var input = page.data.list[data.order].inputs[data.index]
|
var input = page.data.list[data.order].inputs[data.index]
|
||||||
input.value = input.values[parseInt(event.detail.value)]
|
input.value = input.values[parseInt(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.list[data.order]
|
var field = page.data.list[data.order]; var input = field.inputs[data.index]
|
||||||
var input = field.inputs[data.index]
|
|
||||||
|
|
||||||
if (field.feature[input.name]) {
|
if (field.feature[input.name]) {
|
||||||
app.data.insert = {field: field, input: input, cb: function(res) {
|
app.data.insert = {field: field, input: input, list: field.feature[input.name], cb: function(res) {
|
||||||
page.run(event, data.order, kit.Simple("action", input.name, res))
|
page.run(event, data.order, kit.Simple("action", input.name, res))
|
||||||
}}
|
}}
|
||||||
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})
|
||||||
@ -123,22 +102,20 @@ Page({
|
|||||||
kit.List(field.inputs, function(input, index) {
|
kit.List(field.inputs, function(input, index) {
|
||||||
if (input._input != "button") { input.value = line&&line[index] || "" }
|
if (input._input != "button") { input.value = line&&line[index] || "" }
|
||||||
})
|
})
|
||||||
case "查看": // 执行命令
|
case "执行": // 执行命令
|
||||||
page.run(event, data.order)
|
case "刷新": // 执行命令
|
||||||
break
|
case "查看": page.run(event, data.order); break
|
||||||
default:
|
default:
|
||||||
var cb = page.plugin[input.name]; if (typeof cb == "function") {
|
var cb = page.plugin[input.name]; typeof cb == "function"? cb(event, page, data.order, input.name):
|
||||||
cb(event, data.order, page, input.name)
|
page.run(event, data.order, ["action", input.name].concat(kit.List(field.inputs, function(input) {
|
||||||
} else {
|
if (input._input != "button") { return input.value }
|
||||||
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.currentTarget.dataset
|
onWhich: function(event) { var page = this, data = event.currentTarget.dataset
|
||||||
var field = page.data.list[data.order]; if (!field) { return }
|
var field = page.data.list[data.order]; if (!field) { return }
|
||||||
|
|
||||||
var input = data.input && data.input[0]; if (input && input.type == "button") { var option = {}
|
var input = data.input; if (input && input.type == "button") { var option = {}
|
||||||
kit.List(field.inputs, function(input) { input._input != "button" && (option[input.name] = input.value) })
|
kit.List(field.inputs, function(input) { input._input != "button" && (option[input.name] = input.value) })
|
||||||
if (field.msg.append[0] == "key" && field.msg.append[1] == "value") {
|
if (field.msg.append[0] == "key" && field.msg.append[1] == "value") {
|
||||||
kit.List(field.msg.key, function(key, index) { option[key] = field.msg.value[index] })
|
kit.List(field.msg.key, function(key, index) { option[key] = field.msg.value[index] })
|
||||||
@ -147,39 +124,56 @@ Page({
|
|||||||
}
|
}
|
||||||
event._option = option
|
event._option = option
|
||||||
|
|
||||||
var cb = page.plugin[input.name]
|
var cb = page.plugin[input.name]; typeof cb == "function"? cb(event, page, data.order, input.name):
|
||||||
return typeof cb == "function"? cb(event, page, data, input):
|
|
||||||
page.run(event, data.order, ["action", input.name])
|
page.run(event, data.order, ["action", input.name])
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
field.inputs.forEach(function(inputs, index) {
|
field.inputs.forEach(function(input, index) {
|
||||||
if (inputs.name == data.key) { inputs.value = data.value
|
if (input.name == data.key) { input.value = data.value
|
||||||
page.setData({list: page.data.list})
|
page.setData({list: page.data.list})
|
||||||
inputs.action == "auto" && page.run(event, data.order)
|
input.action == "auto" && page.run(event, data.order)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
plugin: {
|
||||||
|
scanQRCode: function(event, page, order, 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, page, order, cmd) { app.clipboard(function(res) {
|
||||||
|
page.run(event, order, kit.Simple("action", cmd, res), function() {
|
||||||
|
app.toast("添加成功"), page.run(event, order)
|
||||||
|
})
|
||||||
|
}) },
|
||||||
|
getLocation: function(event, page, order, cmd) { app.location(function(res) {
|
||||||
|
page.run(event, order, kit.Simple("action", cmd, res), function() {
|
||||||
|
app.toast("添加成功"), page.run(event, order)
|
||||||
|
})
|
||||||
|
}) },
|
||||||
|
},
|
||||||
|
|
||||||
|
onReady: function () {},
|
||||||
onLoad: function (options) {
|
onLoad: function (options) {
|
||||||
console.log("page", "action", options)
|
console.log("page", this.name, options)
|
||||||
this.data.river = options.river
|
this.data.river = options.river
|
||||||
this.data.storm = options.storm
|
this.data.storm = options.storm
|
||||||
this.data.title = options.title
|
this.data.title = options.title
|
||||||
app.title(options.title)
|
app.title(options.title)
|
||||||
|
|
||||||
var data = app.data[options.river+options.storm]
|
var data = app.data[[options.river, options.storm].join(".")]
|
||||||
if (data) { return this.setData({list: this.data.list = data}) }
|
data? this.setData({list: this.data.list = data}): this.onaction({}, {name: "刷新"})
|
||||||
this.onaction({}, {name: "刷新"})
|
|
||||||
},
|
},
|
||||||
onReady: function () {},
|
|
||||||
onShow: function () {},
|
onShow: function () {},
|
||||||
onHide: function () {},
|
onHide: function () {},
|
||||||
onUnload: function () {},
|
onUnload: function () {},
|
||||||
onReachBottom: function () {},
|
onReachBottom: function () {},
|
||||||
onPullDownRefresh: function () { this.onaction({}, {name: "刷新"}) },
|
onPullDownRefresh: function () { this.onaction({}, {name: "刷新"}) },
|
||||||
onShareAppMessage: function (res) {
|
onShareAppMessage: function (res) {
|
||||||
return { title: this.data.title,
|
return {title: this.data.title, path: kit.Args("pages/action/action", {
|
||||||
path: "pages/action/action?river="+this.data.river+"&storm="+this.data.storm+"&title="+this.data.title,
|
river: this.data.river, storm: this.data.storm, title: this.data.title,
|
||||||
}
|
})}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -1,39 +1,4 @@
|
|||||||
<import src="../../app.wxml"/>
|
<import src="../../app.wxml"/>
|
||||||
<template is="action" data="{{action}}"></template>
|
<template is="action" data="{{action}}"></template>
|
||||||
|
<template is="field" data="{{list}}"></template>
|
||||||
|
|
||||||
<view class="output">
|
|
||||||
<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="option">
|
|
||||||
<!-- 参数 -->
|
|
||||||
<view class="item {{item._input}}" wx:for="{{field.inputs}}" wx:key="name">
|
|
||||||
<!-- 文本 -->
|
|
||||||
<textarea wx:if="{{item._input == 'textarea'}}" value="{{item.value}}" placeholder="{{item.name}}"
|
|
||||||
bindinput="onInput" data-index="{{index}}" data-order="{{order}}"></textarea>
|
|
||||||
|
|
||||||
<!-- 文本 -->
|
|
||||||
<input wx:elif="{{item._input == 'text'}}" type="text" value="{{item.value}}" placeholder="{{item.name}}"
|
|
||||||
bindinput="onInput" data-index="{{index}}" data-order="{{order}}"/>
|
|
||||||
|
|
||||||
<!-- 列表 -->
|
|
||||||
<picker wx:elif="{{item._input == 'select'}}" value="{{item.index||0}}" range="{{item.values}}"
|
|
||||||
bindchange="onChange" data-index="{{index}}" data-order="{{order}}">
|
|
||||||
<view>{{item.values[item.index||0]}}</view>
|
|
||||||
</picker>
|
|
||||||
|
|
||||||
<!-- 按钮 -->
|
|
||||||
<button wx:elif="{{item._input == 'button'}}" size="mini"
|
|
||||||
bindtap="onClick" data-index="{{index}}" data-order="{{order}}">{{item.value||item.name}}</button>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 输出 -->
|
|
||||||
<view class="output">
|
|
||||||
<!-- 表格 -->
|
|
||||||
<template is="table" data="{{msg: field.msg, order: order}}"></template>
|
|
||||||
|
|
||||||
<!-- 文本 -->
|
|
||||||
<view class="code"><rich-text wx:for="{{field.msg.result}}" wx:key="index" nodes="{{item}}"></rich-text></view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
view.option view.item {
|
|
||||||
padding:0;
|
|
||||||
}
|
|
||||||
view.option view.item.select {
|
|
||||||
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;
|
|
||||||
}
|
|
@ -2,9 +2,10 @@ const kit = require("../../utils/kit.js")
|
|||||||
const app = getApp()
|
const app = getApp()
|
||||||
|
|
||||||
Page({
|
Page({
|
||||||
|
name: "insert",
|
||||||
data: {
|
data: {
|
||||||
insert: [],
|
|
||||||
action: ["扫码"],
|
action: ["扫码"],
|
||||||
|
list: [],
|
||||||
},
|
},
|
||||||
action: {
|
action: {
|
||||||
"扫码": function(event, page) { app.scans(function(res) {
|
"扫码": function(event, page) { app.scans(function(res) {
|
||||||
@ -15,35 +16,36 @@ Page({
|
|||||||
}) },
|
}) },
|
||||||
},
|
},
|
||||||
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)
|
||||||
},
|
},
|
||||||
|
|
||||||
onInput: function(event) { var page = this, data = event.target.dataset
|
onInput: function(event) { var page = this, data = event.target.dataset
|
||||||
app.data.insert.list[data.index].value = event.detail.value
|
page.data.list[data.index].value = event.detail.value
|
||||||
},
|
},
|
||||||
onChange: function(event) { var page = this, data = event.target.dataset
|
onChange: function(event) { var page = this, data = event.target.dataset
|
||||||
var input = app.data.insert[data.index]
|
var input = page.data.list[data.index]
|
||||||
input.value = input.values[parseInt(event.detail.value)]
|
input.value = input.values[parseInt(event.detail.value)]
|
||||||
},
|
},
|
||||||
onConfirm: function (event) { var page = this
|
onConfirm: function (event) { var page = this
|
||||||
kit.List(page.data.insert, function(item) {
|
var res = {}; kit.List(page.data.list, function(item) { res[item.name] = item.value })
|
||||||
app.data.insert.data[item.name] = item.value
|
app.data.insert.cb(res), wx.navigateBack()
|
||||||
})
|
|
||||||
app.data.insert.cb(app.data.insert.data)
|
|
||||||
wx.navigateBack()
|
|
||||||
},
|
},
|
||||||
onLoad: function (options) { app.title(options.title)
|
|
||||||
console.log("page", "insert", options)
|
|
||||||
|
|
||||||
kit.List(app.data.insert.list, function(item) {
|
onLoad: function (options) {
|
||||||
item.value && item.value.indexOf("@") == 0 && (item.value = "")
|
console.log("page", this.name, options)
|
||||||
app.data.insert.data[item.name] = item.value
|
app.title(options.title)
|
||||||
item.action = item.action || item.value
|
|
||||||
|
kit.List(app.data.insert.list, function(input) {
|
||||||
|
input.action = input.action || input.value
|
||||||
|
input.value == "auto" && (input.value = "")
|
||||||
|
|
||||||
|
if (input.value && input.value.indexOf("@") == 0) {
|
||||||
|
input.action = input.value.slice(1), input.value = ""
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
this.data.insert = app.data.insert.list
|
this.setData({list: this.data.list = app.data.insert.list})
|
||||||
this.setData(this.data)
|
|
||||||
},
|
},
|
||||||
onReady: function () {},
|
onReady: function () {},
|
||||||
onShow: function () {},
|
onShow: function () {},
|
||||||
|
@ -2,17 +2,17 @@
|
|||||||
<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="index">
|
<view class="item" wx:for="{{list}}" wx:key="index">
|
||||||
<!-- 文本 -->
|
<!-- 文本 -->
|
||||||
<textarea wx:if="{{item._input == 'textarea'}}" value="{{item.value}}" placeholder="{{item.name}}"
|
<textarea wx:if="{{item._input == 'textarea'}}" placeholder="{{item.name}}" value="{{item.value}}"
|
||||||
bindinput="onInput" data-index="{{index}}"></textarea>
|
bindinput="onInput" data-index="{{index}}"></textarea>
|
||||||
|
|
||||||
<!-- 文本 -->
|
<!-- 文本 -->
|
||||||
<input wx:elif="{{item._input == 'text'}}" type="text" value="{{item.value}}" placeholder="{{item.name}}"
|
<input wx:elif="{{item._input == 'text'}}" placeholder="{{item.name}}" value="{{item.value}}" type="text"
|
||||||
bindinput="onInput" data-index="{{index}}"/>
|
bindinput="onInput" data-index="{{index}}"/>
|
||||||
|
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<picker wx:elif="{{item._input == 'select'}}" value="{{item.index||0}}" range="{{item.values}}"
|
<picker wx:elif="{{item._input == 'select'}}" range="{{item.values}}" value="{{item.index||0}}"
|
||||||
bindchange="onChange" data-index="{{index}}">
|
bindchange="onChange" data-index="{{index}}">
|
||||||
<view>{{item.values[item.index||0]}}</view>
|
<view>{{item.values[item.index||0]}}</view>
|
||||||
</picker>
|
</picker>
|
||||||
|
@ -44,8 +44,8 @@ Page({
|
|||||||
app.jumps("action/action", {river: item.hash, storm: tool.hash, title: item.name+"."+tool.name})
|
app.jumps("action/action", {river: item.hash, storm: tool.hash, title: item.name+"."+tool.name})
|
||||||
},
|
},
|
||||||
|
|
||||||
onLoad: function (options) { this.onaction({}, {name: "刷新"}) },
|
|
||||||
onReady: function () {},
|
onReady: function () {},
|
||||||
|
onLoad: function (options) { this.onaction({}, {name: "刷新"}) },
|
||||||
onShow: function () {},
|
onShow: function () {},
|
||||||
onHide: function () {},
|
onHide: function () {},
|
||||||
onUnload: function () {},
|
onUnload: function () {},
|
||||||
|
@ -12,6 +12,22 @@ function shy(help, meta, list, cb) {
|
|||||||
return cb
|
return cb
|
||||||
}; var _can_name = ""
|
}; var _can_name = ""
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
EQ: function(obj, other) {
|
||||||
|
if (typeof obj != typeof other) { return false }
|
||||||
|
|
||||||
|
if (typeof obj == "object") {
|
||||||
|
if (obj.length != other.length) { return false }
|
||||||
|
for (var i = 0; i < obj.length; i++) {
|
||||||
|
if (!this.EQ(obj[i], other[i])) { return false }
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var k in obj) {
|
||||||
|
if (!this.EQ(obj[k], other[k])) { return false }
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return obj === other
|
||||||
|
},
|
||||||
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--}
|
||||||
while (n > 0) {res.push("0"); n--}
|
while (n > 0) {res.push("0"); n--}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user