.
This commit is contained in:
@@ -4,6 +4,19 @@
|
||||
*/
|
||||
const dict = {
|
||||
list({type}) {
|
||||
return red.postX('/dict/list', {type})
|
||||
return red.postX('/dict/list', {type}).then(res => {
|
||||
return res//[{value:"gender",label:"性别"},{value:"status",label:"状态"}]
|
||||
})
|
||||
},
|
||||
|
||||
dictData() {
|
||||
return new Promise(resolve => {
|
||||
let data = {"body":{"gender":[{"id":"Dict/37473773","key":"37473773","label":"女","sysPlatId":"52481227","type":"gender","value":"4"},{"id":"Dict/37473772","key":"37473772","label":"男","sysPlatId":"52481227","type":"gender","value":"2"}],"dict":[{"id":"Dict/37473777","key":"37473777","label":"状态","sysPlatId":"52481227","type":"dict","value":"status"},{"id":"Dict/37473776","key":"37473776","label":"性别","sysPlatId":"52481227","type":"dict","value":"gender"}],"status":[{"id":"Dict/37473775","key":"37473775","label":"删除","sysPlatId":"52481227","type":"status","value":"80"},{"id":"Dict/37473774","key":"37473774","label":"正常","sysPlatId":"52481227","type":"status","value":"10"}]},"code":0,"timestamp":0}
|
||||
data = data.body
|
||||
resolve(data)
|
||||
})
|
||||
|
||||
//return {"body":{"gender":[{"id":"Dict/37473773","key":"37473773","label":"女","sysPlatId":"52481227","type":"gender","value":"4"},{"id":"Dict/37473772","key":"37473772","label":"男","sysPlatId":"52481227","type":"gender","value":"2"}],"dict":[{"id":"Dict/37473777","key":"37473777","label":"状态","sysPlatId":"52481227","type":"dict","value":"status"},{"id":"Dict/37473776","key":"37473776","label":"性别","sysPlatId":"52481227","type":"dict","value":"gender"}],"status":[{"id":"Dict/37473775","key":"37473775","label":"删除","sysPlatId":"52481227","type":"status","value":"80"},{"id":"Dict/37473774","key":"37473774","label":"正常","sysPlatId":"52481227","type":"status","value":"10"}]},"code":0,"timestamp":0}
|
||||
//return red.postX("/dict/data");
|
||||
}
|
||||
}
|
||||
@@ -5,5 +5,11 @@ const tmp = {
|
||||
|
||||
search({keyword}) {
|
||||
return red.postX('http://oss-v09x.woaihaoyouxi.com/game/search', {keyword})
|
||||
},
|
||||
|
||||
filetoken() {
|
||||
return red.postX('https://api-oss.1216.top/qiniufile/token?fileType=Pic&blzType=Article&listsize=1&JSESSIONID=91740a7d5c9041d94e21ac7bda158429',{}).then(res => {
|
||||
return res.result.token
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,7 @@
|
||||
<nav class="menu" data-ride="menu">
|
||||
<ul class="nav nav-primary">
|
||||
<li class="active show nav-parent" style="width: 100%;">
|
||||
<a href="javascript:;"><i class="icon icon-tasks"></i> <span v-text="pageId"></span></a>
|
||||
<!--<a href="javascript:;"><i class="icon icon-tasks"></i> <span v-text="pageId"></span></a>-->
|
||||
<ul class="nav">
|
||||
<!-- item in menus -->
|
||||
<li v-for="item in menus" @click="loadPage(item)" :class="{active:page.url==item.url}">
|
||||
@@ -89,6 +89,9 @@
|
||||
import { logout } from './api/user.js'
|
||||
let { refresh } = meta
|
||||
let { platList } = plat
|
||||
let { dictData } = dict
|
||||
|
||||
let dictKv = {} //字典数据
|
||||
let vm = new Vue({
|
||||
el: ".container-fluid",
|
||||
data: {
|
||||
@@ -115,11 +118,12 @@
|
||||
{url:"/qtask/debug.html", name:"QTask-Debug", icon:"icon-bug"},
|
||||
]
|
||||
},
|
||||
/*{
|
||||
{
|
||||
name: "其他服务", url: "/plat/db.html", nodes: [
|
||||
{url:"/plat/db.html", name:"文件服务", icon: "icon-database"},
|
||||
{url:"/oth/index.html", name:"业务平台管理", icon: "icon-database"},
|
||||
{url:"/oth/file.html", name:"文件服务", icon: "icon-database"},
|
||||
]
|
||||
},*/
|
||||
},
|
||||
{
|
||||
name: "业务平台", url: "/qtask", nodes: [
|
||||
{url:"/plat/index.html", name:"业务平台", icon:"icon-server"},
|
||||
@@ -138,6 +142,20 @@
|
||||
{url:"/single/metaFlow.html", name:"MetaKit使用", icon:"icon-server"},
|
||||
]
|
||||
},
|
||||
{name: "Zhub", url: "/zhub", nodes: [
|
||||
{url:"/zhub/monitor.html", name:"Monitor", icon:"icon-server"},
|
||||
{url:"/zhub/topic.html", name:"Topics", icon:"icon-server"},
|
||||
{url:"/zhub/delay.html", name:"Delays", icon:"icon-server"},
|
||||
{url:"/zhub/timer.html", name:"Timer", icon:"icon-server"},
|
||||
]
|
||||
},
|
||||
{name: "微信公众号", url: "/weixin", nodes: [
|
||||
{url:"/weixin/wxapp.html", name:"公众号管理", icon:"icon-server"},
|
||||
{url:"/weixin/user.html", name:"用户管理", icon:"icon-server"},
|
||||
{url:"/weixin/templateMessage.html", name:"模板消息", icon:"icon-server"},
|
||||
{url:"/weixin/timer.html", name:"Timer", icon:"icon-server"},
|
||||
]
|
||||
},
|
||||
|
||||
],
|
||||
menus: {},
|
||||
@@ -179,17 +197,36 @@
|
||||
refresh().then(res => {
|
||||
platList().then(res => { // 刷新平台列表缓存
|
||||
let rows = res.rows
|
||||
this.sysPlats = rows;
|
||||
red.setData("sysPlats", rows);
|
||||
this.sysPlats = rows
|
||||
red.setData("sysPlats", rows)
|
||||
})
|
||||
this.loadDictData()
|
||||
red.showOk()
|
||||
})
|
||||
},
|
||||
logout() {
|
||||
logout()
|
||||
},
|
||||
|
||||
loadDictData() {
|
||||
|
||||
|
||||
dictData().then(res => {
|
||||
let data = {}
|
||||
for (let k in res) {
|
||||
let vs = {}
|
||||
for(let i in res[k]) {
|
||||
vs[res[k][i]['value']] = res[k][i]['label']
|
||||
}
|
||||
data[k] = vs
|
||||
}
|
||||
red.setData("dictKv", data)
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.loadDictData()
|
||||
|
||||
this.menus = red.getData('menus', this.pages[0]['nodes'])
|
||||
this.page = red.getData('page', this.menus[0])
|
||||
this.pageId = red.getData("pageId", this.page['mame'])
|
||||
|
||||
@@ -80,12 +80,12 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- 'sort':field.order>0 -->
|
||||
<th>操作</th>
|
||||
<th v-for="field in cfg.shows"
|
||||
v-if="field.inType != 'HIDDEN'"
|
||||
v-text="field.label || getFieldLabel(field.col)"
|
||||
:class="{'sort':1, 'sort-up':field.col==order.col && order.desc==1, 'sort-down':field.col==order.col && order.desc!=1}"
|
||||
:class="{'sort':1, 'sort-down':field.col==order.col && order.desc==1, 'sort-up':field.col==order.col && order.desc!=1}"
|
||||
@click="sortEvent(field.col)"></th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -93,15 +93,15 @@
|
||||
<!--
|
||||
<td v-for="field in cfg.shows" v-title="dealFieldFmt(row, field.col)" v-text="dealFieldFmt(row, field.col)"></td>
|
||||
-->
|
||||
<td v-for="field in cfg.shows"
|
||||
v-if="field.inType != 'HIDDEN'"
|
||||
v-title="dealFieldFmt(row, field)"
|
||||
v-html="dealFieldFmt(row, field)"></td>
|
||||
<td>
|
||||
<a href="javascript:;" @click="detailData=row; detail()">详情</a>
|
||||
<a href="javascript:;" @click="detailData=row; edit()">编辑</a>
|
||||
<a href="javascript:;" @click="detailData=row; del()">删除</a>
|
||||
</td>
|
||||
<td v-for="field in cfg.shows"
|
||||
v-if="field.inType != 'HIDDEN'"
|
||||
v-title="dealFieldFmt(row, field)"
|
||||
v-html="dealFieldFmt(row, field)"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
154
root/oth/file.html
Normal file
154
root/oth/file.html
Normal file
@@ -0,0 +1,154 @@
|
||||
<row class="oth">
|
||||
|
||||
<!-- head -->
|
||||
<div class="col-md-11">
|
||||
<h3 v-text="cfg.title"></h3>
|
||||
</div>
|
||||
<div class="col-md-1">
|
||||
<div class="input-group pull-right" style="padding-top: 10px">
|
||||
<a>HAO</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-xs-2 sheet-cell">
|
||||
<div style="padding-left: 10px;background-color: #ccc;width: 100%"> 实体表(Meta-Table)</div>
|
||||
<!-- 创建一个空的树,需要包含 .tree CLASS -->
|
||||
<ul class="tree tree-lines tree-folders" id="myTree" data-ride="tree"></ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-10">
|
||||
<!--<button @click="edit({})" class="btn btn-primary" type="button"> 用户金币发放 </button>-->
|
||||
|
||||
|
||||
<textarea class="form-control layui-code" rows="10" id="content" placeholder="/* 没有提交要执行的查询 */" v-text="content">
|
||||
</textarea>
|
||||
|
||||
<hr>
|
||||
<form method="post" action="https://up-z2.qiniup.com" enctype="multipart/form-data">
|
||||
<input name="token" v-model="token">
|
||||
<input name="file" type="file"/>
|
||||
<input type="submit" value="[上传文件]"/>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- edit.modal -->
|
||||
<div class="modal fade" id="myModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">关闭</span></button>
|
||||
<h4 class="modal-title">金币发放 - [编辑]</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label for="queryId" class="col-md-2 required">选择用户</label>
|
||||
<div class="col-md-8">
|
||||
<input v-model="row.name" class="form-control" id="queryId" placeholder="请输入 平台名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="token" class="col-md-2 required">平台 Token</label>
|
||||
<div class="col-md-8 col-sm-10">
|
||||
<input v-model="row.token" class="form-control" id="token" placeholder="请输入 Token">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="remark" class="col-md-2">备注</label>
|
||||
<div class="col-md-8 col-sm-10">
|
||||
<input v-model="row.remark" class="form-control" id="remark" placeholder="请输入 备注">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||||
<button @click="save(row)" type="button" class="btn btn-primary">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</row>
|
||||
|
||||
<script>
|
||||
var myTreeData = [{"title":"ck","path":"","children":[{"title":"ck.go","path":"D:/wk/_own/go-demo/_hello/ck","children":null},{"title":"ck_test.go","path":"D:/wk/_own/go-demo/_hello/ck","children":null}]},{"title":"cmd","path":"","children":[{"title":"cmd_demo.go","path":"D:/wk/_own/go-demo/_hello/cmd","children":null},{"title":"pack.bat","path":"D:/wk/_own/go-demo/_hello/cmd","children":null},{"title":"pack_linux.bat","path":"D:/wk/_own/go-demo/_hello/cmd","children":null},{"title":"upx.exe","path":"D:/wk/_own/go-demo/_hello/cmd","children":null}]},{"title":"dev-kit","path":"","children":[{"title":"dev_kit.go","path":"D:/wk/_own/go-demo/_hello/dev-kit","children":null}]},{"title":"file-io","path":"","children":[{"title":"file_kit.go","path":"D:/wk/_own/go-demo/_hello/file-io","children":null},{"title":"file_kit_test.go","path":"D:/wk/_own/go-demo/_hello/file-io","children":null},{"title":"file_read_test.go","path":"D:/wk/_own/go-demo/_hello/file-io","children":null},{"title":"file_write_test.go","path":"D:/wk/_own/go-demo/_hello/file-io","children":null},{"title":"pub.txt","path":"D:/wk/_own/go-demo/_hello/file-io","children":null},{"title":"test.txt","path":"D:/wk/_own/go-demo/_hello/file-io","children":null},{"title":"test1.txt","path":"D:/wk/_own/go-demo/_hello/file-io","children":null},{"title":"test2.txt","path":"D:/wk/_own/go-demo/_hello/file-io","children":null}]},{"title":"goroutine","path":"","children":[{"title":"gotoutine_test.go","path":"D:/wk/_own/go-demo/_hello/goroutine","children":null},{"title":"pool_test.go","path":"D:/wk/_own/go-demo/_hello/goroutine","children":null}]},{"title":"interface","path":"","children":[{"title":"interface_test.go","path":"D:/wk/_own/go-demo/_hello/interface","children":null}]},{"title":"net","path":"","children":[{"title":"net-x","path":"","children":[{"title":"UserController.go","path":"D:/wk/_own/go-demo/_hello/net/net-x","children":null},{"title":"a.go","path":"D:/wk/_own/go-demo/_hello/net/net-x","children":null}]},{"title":"net-demo.go","path":"D:/wk/_own/go-demo/_hello/net","children":null},{"title":"net_x.go","path":"D:/wk/_own/go-demo/_hello/net","children":null}]},{"title":"pulsar","path":"","children":[{"title":"pulsar_test.go","path":"D:/wk/_own/go-demo/_hello/pulsar","children":null}]},{"title":"struct","path":"","children":[{"title":"struct-demo.go","path":"D:/wk/_own/go-demo/_hello/struct","children":null}]},{"title":"timer","path":"","children":[{"title":"timer_test.go","path":"D:/wk/_own/go-demo/_hello/timer","children":null}]},{"title":"hello_test.go","path":"D:/wk/_own/go-demo/_hello","children":null}]
|
||||
|
||||
let { platList, platSave } = plat
|
||||
let { filetoken } = tmp
|
||||
|
||||
var vm = new Vue({
|
||||
el: ".oth",
|
||||
data: {
|
||||
cfg: {
|
||||
title: "业务平台 管理",
|
||||
cols: [
|
||||
{col: "name", label: "业务名称"},
|
||||
{col: "token", label: "Token"},
|
||||
{col: "remark", label: "说明"},
|
||||
{col: "status", label: "状态", fmt: function (v) {
|
||||
return {"0":"未启用", "1":"启用", "-1":"删除"}[v] || "";
|
||||
}},
|
||||
|
||||
],
|
||||
filters: []
|
||||
},
|
||||
list: {rows:[], total: 0},
|
||||
row: {},
|
||||
content:"",
|
||||
token: "x"
|
||||
},
|
||||
watch: {
|
||||
|
||||
},
|
||||
methods: {
|
||||
findList () {
|
||||
platList().then(res => {
|
||||
vm.list = res
|
||||
})
|
||||
},
|
||||
update: function (kv, row) {
|
||||
red.post("/meta/save", {
|
||||
_id: row._id,
|
||||
doc: JSON.stringify(kv)
|
||||
}, function (json) {
|
||||
red.showMsg();
|
||||
red.putAll(row, kv);
|
||||
vm.findList();
|
||||
});
|
||||
},
|
||||
edit: function (row) {
|
||||
vm.row = row;
|
||||
console.log(this.row);
|
||||
$('#myModal').modal({moveable: true});
|
||||
},
|
||||
save: function (row) {
|
||||
platSave({plat: row}).then(() => {
|
||||
red.showMsg({msg: "操作成功"})
|
||||
$('#myModal').modal('hide')
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.findList();
|
||||
$('#myTree').tree({
|
||||
data: myTreeData
|
||||
,itemCreator: function($li, item) {
|
||||
$li.append($('<a/>', {href: item.url, click: ()=>{
|
||||
console.log(item.title)
|
||||
vm.content = item.title
|
||||
}}).text(item.title));
|
||||
// return false; // 如果要忽略当前节点,可以通过返回 false 来实现
|
||||
}
|
||||
});
|
||||
|
||||
filetoken().then(res => {
|
||||
this.token = res[0]
|
||||
console.log(this.token)
|
||||
})
|
||||
}
|
||||
});
|
||||
</script>
|
||||
137
root/oth/index.html
Normal file
137
root/oth/index.html
Normal file
@@ -0,0 +1,137 @@
|
||||
<row class="oth">
|
||||
|
||||
<!-- head -->
|
||||
<div class="col-md-11">
|
||||
<h3 v-text="cfg.title"></h3>
|
||||
</div>
|
||||
<div class="col-md-1">
|
||||
<div class="input-group pull-right" style="padding-top: 10px">
|
||||
<!--<span class="input-group-btn">
|
||||
<button @click="edit({})" class="btn btn-primary" type="button"> 新增业务平台 </button>
|
||||
</span>-->
|
||||
<a>HAO</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<button @click="edit({})" class="btn btn-primary" type="button"> 用户金币发放 </button>
|
||||
|
||||
<!--<table class="table table-bordered table-hover" style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th v-for="field in cfg.cols" v-text="field.label"></th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="item in list.rows">
|
||||
<td v-for="field in cfg.cols" v-title="item[field.col]" v-text="field.fmt ? field.fmt(item[field.col]) : item[field.col]"></td>
|
||||
<td>
|
||||
<a @click="edit(item)" href="javascript:;">编辑</a> |
|
||||
<a @click="update({status:1}, item)" v-show="item.status != 1" href="javascript:;">启用</a>
|
||||
<a @click="update({status:0}, item)" v-show="item.status == 1" href="javascript:;">不启用</a> |
|
||||
<a @click="update({status:-1}, item)" href="javascript:;">删除</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>-->
|
||||
</div>
|
||||
|
||||
|
||||
<!-- edit.modal -->
|
||||
<div class="modal fade" id="myModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">关闭</span></button>
|
||||
<h4 class="modal-title">金币发放 - [编辑]</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label for="queryId" class="col-md-2 required">选择用户</label>
|
||||
<div class="col-md-8">
|
||||
<input v-model="row.name" class="form-control" id="queryId" placeholder="请输入 平台名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="token" class="col-md-2 required">平台 Token</label>
|
||||
<div class="col-md-8 col-sm-10">
|
||||
<input v-model="row.token" class="form-control" id="token" placeholder="请输入 Token">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="remark" class="col-md-2">备注</label>
|
||||
<div class="col-md-8 col-sm-10">
|
||||
<input v-model="row.remark" class="form-control" id="remark" placeholder="请输入 备注">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||||
<button @click="save(row)" type="button" class="btn btn-primary">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</row>
|
||||
|
||||
<script>
|
||||
let { platList, platSave } = plat;
|
||||
var vm = new Vue({
|
||||
el: ".oth",
|
||||
data: {
|
||||
cfg: {
|
||||
title: "业务平台 管理",
|
||||
cols: [
|
||||
{col: "name", label: "业务名称"},
|
||||
{col: "token", label: "Token"},
|
||||
{col: "remark", label: "说明"},
|
||||
{col: "status", label: "状态", fmt: function (v) {
|
||||
return {"0":"未启用", "1":"启用", "-1":"删除"}[v] || "";
|
||||
}},
|
||||
|
||||
],
|
||||
filters: []
|
||||
},
|
||||
list: {rows:[], total: 0},
|
||||
row: {}
|
||||
},
|
||||
watch: {
|
||||
|
||||
},
|
||||
methods: {
|
||||
findList () {
|
||||
platList().then(res => {
|
||||
vm.list = res
|
||||
})
|
||||
},
|
||||
update: function (kv, row) {
|
||||
red.post("/meta/save", {
|
||||
_id: row._id,
|
||||
doc: JSON.stringify(kv)
|
||||
}, function (json) {
|
||||
red.showMsg();
|
||||
red.putAll(row, kv);
|
||||
vm.findList();
|
||||
});
|
||||
},
|
||||
edit: function (row) {
|
||||
vm.row = row;
|
||||
console.log(this.row);
|
||||
$('#myModal').modal({moveable: true});
|
||||
},
|
||||
save: function (row) {
|
||||
platSave({plat: row}).then(() => {
|
||||
red.showMsg({msg: "操作成功"})
|
||||
$('#myModal').modal('hide')
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.findList();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@@ -222,7 +222,7 @@
|
||||
loadCatalogs: function () {
|
||||
vm.catalogs = [];
|
||||
//let [cate, url, user, pwd] = this.row
|
||||
let dbAccount = {cate:'', url:'', user:'', pwd:''}
|
||||
let dbAccount = {key: '',cate:'', url:'', user:'', pwd:''}
|
||||
for (let key in dbAccount) {
|
||||
dbAccount[key] = this.row[key]
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>登录 - MetaKit</title>
|
||||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/zui/1.8.1/css/zui.min.css">
|
||||
<link rel="stylesheet" href="../res/css/zui-theme.css">
|
||||
<link rel="stylesheet" href="../res/css/red-kit.css">
|
||||
<link rel="stylesheet" href="/res/zui/css/zui.min.css">
|
||||
<link rel="stylesheet" href="/res/css/zui-theme.css">
|
||||
<link rel="stylesheet" href="/res/css/red-kit.css">
|
||||
<style>
|
||||
body {
|
||||
background: url('http://img.1216.top/static/material/6060f.webp') no-repeat fixed;
|
||||
background: url('https://img.1216.top/static/material/6060f.webp') no-repeat fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: 100% 100%;
|
||||
|
||||
245
root/ws.html
Normal file
245
root/ws.html
Normal file
@@ -0,0 +1,245 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>MetaKit</title>
|
||||
<link rel="stylesheet" href="/res/zui/css/zui.min.css">
|
||||
<link rel="stylesheet" href="/res/css/zui-theme.css">
|
||||
<link rel="stylesheet" href="/res/css/red-kit.css">
|
||||
</head>
|
||||
<body id="home">
|
||||
<div class="container-fluid">
|
||||
<row>
|
||||
<div class="col-md-12" id="top">
|
||||
<div class="logo">
|
||||
<h1>Meta-Kit</h1>
|
||||
</div>
|
||||
<ul class="nav nav-tabs">
|
||||
<!--item in pages-->
|
||||
<li v-for="item in pages" @click="loadMain(item)" :class="{active:item.name==pageId}">
|
||||
<a data-tab href="#" v-text="item.name"></a>
|
||||
</li>
|
||||
|
||||
<li class="pull-right" title="刷新服务端缓存数据">
|
||||
<a @click="refresh()" href="javascript:;" style="padding: 6px 15px;border: 0;background-color: #404a53;color: #fff;">
|
||||
<i class="icon icon-repeat"></i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="pull-right">
|
||||
<a @click="logout()" href="javascript:;" style="padding: 6px 15px;border: 0;background-color: #404a53;color: #fff;">
|
||||
<i class="icon icon-user"></i> 退出
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="pull-right">
|
||||
<select v-model="sysPlat" class="form-control" style="border: 0;background-color: #404a53;color: #fff;">
|
||||
<option v-for="item in sysPlats" :value="item" v-text="item.name"></option>
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="mainDiv">
|
||||
<div class="col-md-1" id="left">
|
||||
<nav class="menu" data-ride="menu">
|
||||
<ul class="nav nav-primary">
|
||||
<li class="active show nav-parent" style="width: 100%;">
|
||||
<a href="javascript:;"><i class="icon icon-tasks"></i> <span v-text="pageId"></span></a>
|
||||
<ul class="nav">
|
||||
<!-- item in menus -->
|
||||
<li v-for="item in menus" @click="loadPage(item)" :class="{active:page.url==item.url}">
|
||||
<a href="javascript:;"><i :class="['icon', item.icon ? item.icon : 'icon-circle-blank']"></i> <span v-text="item.name"></span></a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-md-11">
|
||||
<!--<div style="height: 40px;background-color: #fff;"></div>-->
|
||||
<!-- load main body to here -->
|
||||
<div id="main"></div>
|
||||
<div class="footer">
|
||||
Meta-Kit Developer v0.2
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</row>
|
||||
</div>
|
||||
|
||||
<!--<script src="https://cdn.jsdelivr.net/npm/vue"></script>-->
|
||||
<script src="/res/libs/vue.min.js"></script>
|
||||
<script src="/res/zui/lib/jquery/jquery.js"></script>
|
||||
<script src="/res/libs/axios.min.js"></script>
|
||||
<script src="/res/zui/js/zui.js"></script>
|
||||
<script src="/res/js/red.js"></script>
|
||||
<script src="/api/meta.js"></script>
|
||||
<script src="/api/plat.js"></script>
|
||||
<script src="/api/qtask.js"></script>
|
||||
<script src="/api/db.js"></script>
|
||||
<script src="/api/table.js"></script>
|
||||
<script src="/api/dict.js"></script>
|
||||
<script src="/api/tmp.js"></script>
|
||||
<script src="/res/zui/lib/sortable/zui.sortable.js"></script>
|
||||
<script src="/res/zui/lib/uploader/zui.uploader.min.js"></script>
|
||||
<script type="module">
|
||||
import { logout } from './api/user.js'
|
||||
let { refresh } = meta
|
||||
let { platList } = plat
|
||||
let { dictData } = dict
|
||||
|
||||
let dictKv = {} //字典数据
|
||||
let vm = new Vue({
|
||||
el: ".container-fluid",
|
||||
data: {
|
||||
sysPlat: red.getData('sysPlat'),
|
||||
sysPlats: red.getData('sysPlats'),
|
||||
pages: [
|
||||
/*{name: "DDL", url: "/qtask/ddl.html"},*/
|
||||
{name: "元服务", url: "/meta", nodes: [
|
||||
/*{url:"/metadata/metatable/list.html", name:"TableList"},*/
|
||||
{url:"/metadata/metatable/metaTable.html", name:"实体管理", icon: "icon-cubes"},
|
||||
/*{url:"/metadata/metatable/import.html", name:"导入实体"},*/
|
||||
{url:"/metadata/metaLink.html", name:"实体关系", icon:"icon-branch"},
|
||||
{url:"/metadata/metaService.html", name:"业务管理", icon: "icon-sliders"},
|
||||
{url:"/metadata/dataList.html", name:"业务预览", icon:"icon-window-alt"},
|
||||
/*{url:"/metadata/dict.html", name:"字典管理", icon:"icon-usecase"},*/
|
||||
{url:"/content/create.html", name:"内容管理", icon:"icon-edit-sign"},
|
||||
/*{url:"/content/list.html", name:"游戏查询", icon:"icon-usecase"},
|
||||
{url:"/content/funs.html", name:"平台功能", icon:"icon-usecase"},*/
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "QTask", url: "/qtask", nodes: [
|
||||
{url:"/qtask/list.html", name:"QTask", icon:"icon-cube-alt"},
|
||||
{url:"/qtask/debug.html", name:"QTask-Debug", icon:"icon-bug"},
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "其他服务", url: "/plat/db.html", nodes: [
|
||||
{url:"/oth/index.html", name:"业务平台管理", icon: "icon-database"},
|
||||
{url:"/oth/file.html", name:"文件服务", icon: "icon-database"},
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "业务平台", url: "/qtask", nodes: [
|
||||
{url:"/plat/index.html", name:"业务平台", icon:"icon-server"},
|
||||
{url:"/plat/dev.html", name:"dev", icon:"icon-beaker"},
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "数据平台", url: "/plat/db.html", nodes: [
|
||||
{url:"/plat/db.html", name:"数据中心", icon: "icon-database"},
|
||||
]
|
||||
},
|
||||
{name: "关于", url: "/single", nodes: [
|
||||
{url:"/single/about.html", name:"关于MetaKit", icon:"icon-server"},
|
||||
{url:"/single/code.html", name:"整体实现", icon:"icon-server"},
|
||||
{url:"/single/core.html", name:"组件关系", icon:"icon-server"},
|
||||
{url:"/single/metaFlow.html", name:"MetaKit使用", icon:"icon-server"},
|
||||
]
|
||||
},
|
||||
|
||||
],
|
||||
menus: {},
|
||||
page: {},
|
||||
pageId: ''
|
||||
},
|
||||
watch: {
|
||||
page: function () {
|
||||
//page main chenged,up all cache for munus/pageId/page data
|
||||
red.setData("page", this.page);
|
||||
red.setData("menus", this.menus);
|
||||
red.setData("pageId", this.pageId);
|
||||
},
|
||||
sysPlat: function (v) {
|
||||
red.setData("sysPlat", v);
|
||||
this.loadPage();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadPage(page) {
|
||||
if (page && this.page.url == page.url) {
|
||||
return false;
|
||||
}
|
||||
page = page || this.page;
|
||||
this.page = page;
|
||||
$("#main").load(page.url, () => this.showInfo());
|
||||
|
||||
},
|
||||
showInfo() {
|
||||
if (red.getData('userName') === 'root' || red.getData('userName') === 'admin') {
|
||||
$('#main .info').show()
|
||||
}
|
||||
},
|
||||
loadMain(item) {
|
||||
this.menus = item.nodes || [item];
|
||||
this.pageId = item.name;
|
||||
},
|
||||
refresh() {
|
||||
refresh().then(res => {
|
||||
platList().then(res => { // 刷新平台列表缓存
|
||||
let rows = res.rows
|
||||
this.sysPlats = rows
|
||||
red.setData("sysPlats", rows)
|
||||
})
|
||||
this.loadDictData()
|
||||
red.showOk()
|
||||
})
|
||||
},
|
||||
logout() {
|
||||
logout()
|
||||
},
|
||||
|
||||
loadDictData() {
|
||||
|
||||
|
||||
dictData().then(res => {
|
||||
let data = {}
|
||||
for (let k in res) {
|
||||
let vs = {}
|
||||
for(let i in res[k]) {
|
||||
vs[res[k][i]['value']] = res[k][i]['label']
|
||||
}
|
||||
data[k] = vs
|
||||
}
|
||||
red.setData("dictKv", data)
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
this.loadDictData()
|
||||
|
||||
this.menus = red.getData('menus', this.pages[0]['nodes'])
|
||||
this.page = red.getData('page', this.menus[0])
|
||||
this.pageId = red.getData("pageId", this.page['mame'])
|
||||
//绑定事件
|
||||
$('.menu .nav').on('click', 'li:not(.nav-parent) > a', function() {
|
||||
let $this = $(this);
|
||||
$('.menu .nav .active').removeClass('active');
|
||||
$this.closest('li').addClass('active');
|
||||
$this.closest('.nav-parent').addClass('active');
|
||||
});
|
||||
|
||||
$("#main").load(this.page.url,() => this.showInfo());
|
||||
//this.loadPage(this.page);
|
||||
|
||||
//监听浏览器窗口大小变化
|
||||
function autoLeftHeight() {
|
||||
let h = document.documentElement.clientHeight || document.body.clientHeight;
|
||||
$("#left").attr("style", "height:" + (h - 50) + "px");
|
||||
$("#main").attr("style", "height:" + (h - 90) + "px; overflow: auto;");
|
||||
$(".sheet-cell").attr("style", "height:" + (h - 265) + "px;margin-bottom:20px;");
|
||||
}
|
||||
autoLeftHeight();
|
||||
$(window).resize(function () {
|
||||
autoLeftHeight();
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
208
root/zhub/delay.html
Normal file
208
root/zhub/delay.html
Normal file
@@ -0,0 +1,208 @@
|
||||
<div class="alert alert-info with-icon">
|
||||
<i class="icon-flag-checkered"></i>
|
||||
<div class="content">
|
||||
<h4>Delay Message <a class="pull-right" href="javascript:;"><i class="icon-info"/> </a></h4>
|
||||
<hr>
|
||||
<p> 10/3122</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<table class="table table-bordered table-hover" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="sort">消息ID</th>
|
||||
<th class="sort">主题</th>
|
||||
<th class="sort">消息</th>
|
||||
<th class="sort">发送时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>ktabupfj-12kx</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; WLZ-AL10
|
||||
Build/HUAWEIWLZ-AL10)","androidid":"c91088eb67f2bcad","appos":"android","appversion":"1.1.0","channel":"xxbztoutiao_36","clientid":"kmvy8z8m","guserid":32610,"ip":"111.78.160.154","manufacturer":"HUAWEI","model":"WLZ-AL10","oaid":"db9a776f-ff67-9c9c-fee3-e7fbffefb1f0","offlinetime":0,"onlineseconds":0,"onlinetime":1631034539839,"recordid":"32610-1631034539839","updatetime":1631034539839}
|
||||
</td>
|
||||
<td>2021-09-08 01:08:59</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabupoj-12ky</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 9; Redmi Note 8 Pro
|
||||
MIUI/V11.0.3.0.PGGCNXM)","androidid":"10eda96ca0c244a8","appos":"android","appversion":"1.1.1","channel":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","guserid":41045,"imei":"869898044685797","ip":"106.45.158.8","manufacturer":"Xiaomi","model":"Redmi
|
||||
Note 8
|
||||
Pro","oaid":"3e8632ed3341a36d","offlinetime":0,"onlineseconds":0,"onlinetime":1631034540163,"recordid":"41045-1631034540163","updatetime":1631034540163}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:00</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabv2ri-12kz</td>
|
||||
<td>sdk-record</td>
|
||||
<td>
|
||||
{"appmodel":"SNE-AL00","appos":"android","apptoken":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","channelmark":"xxbzqqq_0","clientid":"kmvy8z8m","createtime":1631034557118,"guserid":17386,"ip":"183.94.28.13","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","recordid":"87aeedaec430490daaadf584a65df6e0","systemversion":"29","type":"DOWN_HAO_APP","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:17</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabv2rp-12l0</td>
|
||||
<td>sdk_down_hao_app</td>
|
||||
<td>{"targetid":"22679","targetuserid":0,"userid":64358}</td>
|
||||
<td>2021-09-08 01:09:17</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabv6h9-12l1</td>
|
||||
<td>sdk-record</td>
|
||||
<td>
|
||||
{"appmodel":"SNE-AL00","appos":"android","apptoken":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","channelmark":"xxbzqqq_0","clientid":"kmvy8z8m","createtime":1631034561933,"guserid":15265,"ip":"183.94.28.13","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","recordid":"05f7d6d7b3f14d10ba5dc25acd6f89d3","systemversion":"29","type":"LOGIN","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:21</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabve2m-12l2</td>
|
||||
<td>sdk-record</td>
|
||||
<td>
|
||||
{"appmodel":"SNE-AL00","appos":"android","apptoken":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","channelmark":"xxbzqqq_0","clientid":"kmvy8z8m","createtime":1631034571773,"guserid":15265,"ip":"183.94.28.13","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","recordid":"688d78fc77c94790986493442fc56ea5","systemversion":"29","type":"DOWN_HAO_APP","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:31</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabve2t-12l3</td>
|
||||
<td>sdk_down_hao_app</td>
|
||||
<td>{"targetid":"22679","targetuserid":0,"userid":63264}</td>
|
||||
<td>2021-09-08 01:09:31</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabvihl-12l4</td>
|
||||
<td>sdk-record</td>
|
||||
<td>
|
||||
{"appmodel":"SNE-AL00","appos":"android","apptoken":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","channelmark":"xxbzqqq_0","clientid":"kmvy8z8m","createtime":1631034577497,"guserid":15265,"ip":"183.94.28.13","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","recordid":"c79a9bd32d704788b7b15bcdd47ac886","systemversion":"29","type":"LOGIN","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:37</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabvtlr-12l5</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 9; V1945A
|
||||
Build/PKQ1.190626.001)","androidid":"a51440a64f826188","appos":"android","appversion":"1.1.1","channel":"xxbzgdt_15","clientid":"kmvy8z8m","guserid":25264,"imei":"868007046590234","ip":"221.217.178.42","manufacturer":"vivo","model":"V1945A","oaid":"ace2f5773dea8d67a154f9b44bd02d931939378b6a4736b20280b88bcf219c8b","offlinetime":0,"onlineseconds":0,"onlinetime":1631034591902,"recordid":"25264-1631034591902","updatetime":1631034591902}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:51</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabw6yk-12l6</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; EML-AL00
|
||||
Build/HUAWEIEML-AL00)","androidid":"066ec6fc508e2877","appos":"android","appversion":"1.1.1","channel":"xxbzqqq_0","clientid":"kmvy8z8m","guserid":38426,"ip":"223.104.250.170","manufacturer":"HUAWEI","model":"EML-AL00","oaid":"ba377ec8-fff6-9f34-fb1f-bdf56dff7d20","offlinetime":0,"onlineseconds":0,"onlinetime":1631034609212,"recordid":"38426-1631034609212","updatetime":1631034609212}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:09</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabwar4-12l7</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 8.0.0; KNT-AL20
|
||||
Build/HUAWEIKNT-AL20)","androidid":"b0e13f2050e3e29a","appos":"android","appversion":"1.1.1","channel":"xxbzbd_0","clientid":"kmvy8z8m","guserid":32665,"imei":"863603037112999","ip":"223.104.63.235","manufacturer":"HUAWEI","model":"KNT-AL20","oaid":"ff5ffffe-76f7-5444-f7dd-9fa5deb76a75","offlinetime":0,"onlineseconds":0,"onlinetime":1631034614128,"recordid":"32665-1631034614128","updatetime":1631034614128}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:14</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabwn4e-12l8</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; OXF-AN00
|
||||
Build/HUAWEIOXF-AN00)","androidid":"6640361dcae0c18a","appos":"android","appversion":"1.1.0","channel":"xxbzkuaishou0422_9","clientid":"kmvy8z8m","guserid":20005,"ip":"121.239.208.209","manufacturer":"HUAWEI","model":"OXF-AN00","oaid":"9dbbfddf-fbb5-a48a-dd63-fffdbaf3df62","offlinetime":0,"onlineseconds":0,"onlinetime":1631034630158,"recordid":"20005-1631034630158","updatetime":1631034630158}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:30</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabwp37-12l9</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; vivo NEX A
|
||||
Build/QP1A.190711.020)","androidid":"9d17cca826513090","appos":"android","appversion":"1.1.1","channel":"xxbzqqq_0","clientid":"kmvy8z8m","guserid":38992,"ip":"36.128.86.158","manufacturer":"vivo","model":"vivo
|
||||
NEX
|
||||
A","oaid":"dc7e96b4cd8a9e4718565b24dc02181a8e1d3f551eb71c73ad6560e9b6853161","offlinetime":0,"onlineseconds":0,"onlinetime":1631034632707,"recordid":"38992-1631034632707","updatetime":1631034632707}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:32</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabwr1x-12la</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; SNE-AL00
|
||||
Build/HUAWEISNE-AL00)","androidid":"c1e5bf34133549f3","appos":"android","appversion":"1.1.1","channel":"xxbzqqq_0","clientid":"kmvy8z8m","guserid":15265,"ip":"183.94.28.13","manufacturer":"HUAWEI","model":"SNE-AL00","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","offlinetime":0,"onlineseconds":0,"onlinetime":1631034635253,"recordid":"15265-1631034635253","updatetime":1631034635253}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:35</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabx6o9-12lb</td>
|
||||
<td>sdk-record</td>
|
||||
<td>{"appmodel":"Redmi Note 8
|
||||
Pro","appos":"android","apptoken":"3e8632ed3341a36d","channelmark":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","createtime":1631034655496,"guserid":41045,"ip":"106.45.158.8","oaid":"3e8632ed3341a36d","recordid":"d52d6bc6cdf44528986ce9dc716ea20a","systemversion":"28","type":"ANIMATE","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:55</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabxe8e-12lc</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 9; Redmi Note 8 Pro
|
||||
MIUI/V11.0.3.0.PGGCNXM)","androidid":"10eda96ca0c244a8","appos":"android","appversion":"1.1.1","channel":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","guserid":41045,"imei":"869898044685797","ip":"106.45.158.8","manufacturer":"Xiaomi","model":"Redmi
|
||||
Note 8
|
||||
Pro","oaid":"3e8632ed3341a36d","offlinetime":0,"onlineseconds":0,"onlinetime":1631034665293,"recordid":"41045-1631034665293","updatetime":1631034665293}
|
||||
</td>
|
||||
<td>2021-09-08 01:11:05</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabxpm4-12ld</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 8.1.0; ONEPLUS A5000
|
||||
Build/OPM1.171019.011)","androidid":"0842a50fa1f1fca2","appos":"android","appversion":"1.1.0","channel":"xxbzhaoyouxi_0","clientid":"kmvy8z8m","guserid":22950,"imei":"866265036244053","ip":"120.42.180.122","manufacturer":"OnePlus","model":"ONEPLUS
|
||||
A5000","offlinetime":0,"onlineseconds":0,"onlinetime":1631034680044,"recordid":"22950-1631034680044","updatetime":1631034680044}
|
||||
</td>
|
||||
<td>2021-09-08 01:11:20</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktaby4mn-12le</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 11; M2002J9E
|
||||
Build/RKQ1.200826.002)","androidid":"0d54c9c9cf83e30b","appos":"android","appversion":"1.1.1","channel":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","guserid":40812,"ip":"60.25.158.105","manufacturer":"Xiaomi","model":"M2002J9E","oaid":"f54443e5f13ad788","offlinetime":0,"onlineseconds":0,"onlinetime":1631034699503,"recordid":"40812-1631034699503","updatetime":1631034699503}
|
||||
</td>
|
||||
<td>2021-09-08 01:11:39</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabzo3n-12lf</td>
|
||||
<td>sdk-record</td>
|
||||
<td>{"appmodel":"Redmi Note 8
|
||||
Pro","appos":"android","apptoken":"3e8632ed3341a36d","channelmark":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","createtime":1631034771393,"guserid":41045,"ip":"106.45.158.8","oaid":"3e8632ed3341a36d","recordid":"56b1a079459f46a497131866a3944b14","systemversion":"28","type":"ANIMATE","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:12:51</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabzvnx-12lg</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 9; Redmi Note 8 Pro
|
||||
MIUI/V11.0.3.0.PGGCNXM)","androidid":"10eda96ca0c244a8","appos":"android","appversion":"1.1.1","channel":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","guserid":41045,"imei":"869898044685797","ip":"106.45.158.8","manufacturer":"Xiaomi","model":"Redmi
|
||||
Note 8
|
||||
Pro","oaid":"3e8632ed3341a36d","offlinetime":0,"onlineseconds":0,"onlinetime":1631034781197,"recordid":"41045-1631034781197","updatetime":1631034781197}
|
||||
</td>
|
||||
<td>2021-09-08 01:13:01</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
41
root/zhub/monitor.html
Normal file
41
root/zhub/monitor.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<div id="monitor">
|
||||
<div class="col-md-4">
|
||||
<div class="alert alert-info with-icon">
|
||||
<i class="icon-rss"></i>
|
||||
<div class="content">
|
||||
<h4>Topics</h4>
|
||||
<hr>
|
||||
<p>1021/1120</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="alert alert-info with-icon">
|
||||
<i class="icon-flag-checkered"></i>
|
||||
<div class="content">
|
||||
<h4>Delay Message <a class="pull-right" href="javascript:;"><i class="icon-info"/> </a></h4>
|
||||
<hr>
|
||||
<p> 10/3122</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="alert alert-info with-icon">
|
||||
<i class="icon-time"></i>
|
||||
<div class="content">
|
||||
<h4>Timers</h4>
|
||||
<hr>
|
||||
<p>126</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vm = new Vue({
|
||||
el: "#monitor",
|
||||
data: {
|
||||
about: "AbOUT",
|
||||
}
|
||||
});
|
||||
</script>
|
||||
8
root/zhub/timer.html
Normal file
8
root/zhub/timer.html
Normal file
@@ -0,0 +1,8 @@
|
||||
<div class="alert alert-info with-icon">
|
||||
<i class="icon-time"></i>
|
||||
<div class="content">
|
||||
<h4>Timers</h4>
|
||||
<hr>
|
||||
<p>126</p>
|
||||
</div>
|
||||
</div>
|
||||
207
root/zhub/topic.html
Normal file
207
root/zhub/topic.html
Normal file
@@ -0,0 +1,207 @@
|
||||
<div class="alert alert-info with-icon">
|
||||
<i class="icon-rss"></i>
|
||||
<div class="content">
|
||||
<h4>Topics</h4>
|
||||
<hr>
|
||||
<p>1021/1120</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-bordered table-hover" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="sort">[消息ID]阿斯顿</th>
|
||||
<th class="sort">[主题]b</th>
|
||||
<th class="sort">[消息]</th>
|
||||
<th class="sort">创建时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>ktabupfj-12kx</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; WLZ-AL10
|
||||
Build/HUAWEIWLZ-AL10)","androidid":"c91088eb67f2bcad","appos":"android","appversion":"1.1.0","channel":"xxbztoutiao_36","clientid":"kmvy8z8m","guserid":32610,"ip":"111.78.160.154","manufacturer":"HUAWEI","model":"WLZ-AL10","oaid":"db9a776f-ff67-9c9c-fee3-e7fbffefb1f0","offlinetime":0,"onlineseconds":0,"onlinetime":1631034539839,"recordid":"32610-1631034539839","updatetime":1631034539839}
|
||||
</td>
|
||||
<td>2021-09-08 01:08:59</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabupoj-12ky</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 9; Redmi Note 8 Pro
|
||||
MIUI/V11.0.3.0.PGGCNXM)","androidid":"10eda96ca0c244a8","appos":"android","appversion":"1.1.1","channel":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","guserid":41045,"imei":"869898044685797","ip":"106.45.158.8","manufacturer":"Xiaomi","model":"Redmi
|
||||
Note 8
|
||||
Pro","oaid":"3e8632ed3341a36d","offlinetime":0,"onlineseconds":0,"onlinetime":1631034540163,"recordid":"41045-1631034540163","updatetime":1631034540163}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:00</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabv2ri-12kz</td>
|
||||
<td>sdk-record</td>
|
||||
<td>
|
||||
{"appmodel":"SNE-AL00","appos":"android","apptoken":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","channelmark":"xxbzqqq_0","clientid":"kmvy8z8m","createtime":1631034557118,"guserid":17386,"ip":"183.94.28.13","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","recordid":"87aeedaec430490daaadf584a65df6e0","systemversion":"29","type":"DOWN_HAO_APP","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:17</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabv2rp-12l0</td>
|
||||
<td>sdk_down_hao_app</td>
|
||||
<td>{"targetid":"22679","targetuserid":0,"userid":64358}</td>
|
||||
<td>2021-09-08 01:09:17</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabv6h9-12l1</td>
|
||||
<td>sdk-record</td>
|
||||
<td>
|
||||
{"appmodel":"SNE-AL00","appos":"android","apptoken":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","channelmark":"xxbzqqq_0","clientid":"kmvy8z8m","createtime":1631034561933,"guserid":15265,"ip":"183.94.28.13","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","recordid":"05f7d6d7b3f14d10ba5dc25acd6f89d3","systemversion":"29","type":"LOGIN","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:21</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabve2m-12l2</td>
|
||||
<td>sdk-record</td>
|
||||
<td>
|
||||
{"appmodel":"SNE-AL00","appos":"android","apptoken":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","channelmark":"xxbzqqq_0","clientid":"kmvy8z8m","createtime":1631034571773,"guserid":15265,"ip":"183.94.28.13","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","recordid":"688d78fc77c94790986493442fc56ea5","systemversion":"29","type":"DOWN_HAO_APP","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:31</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabve2t-12l3</td>
|
||||
<td>sdk_down_hao_app</td>
|
||||
<td>{"targetid":"22679","targetuserid":0,"userid":63264}</td>
|
||||
<td>2021-09-08 01:09:31</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabvihl-12l4</td>
|
||||
<td>sdk-record</td>
|
||||
<td>
|
||||
{"appmodel":"SNE-AL00","appos":"android","apptoken":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","channelmark":"xxbzqqq_0","clientid":"kmvy8z8m","createtime":1631034577497,"guserid":15265,"ip":"183.94.28.13","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","recordid":"c79a9bd32d704788b7b15bcdd47ac886","systemversion":"29","type":"LOGIN","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:37</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabvtlr-12l5</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 9; V1945A
|
||||
Build/PKQ1.190626.001)","androidid":"a51440a64f826188","appos":"android","appversion":"1.1.1","channel":"xxbzgdt_15","clientid":"kmvy8z8m","guserid":25264,"imei":"868007046590234","ip":"221.217.178.42","manufacturer":"vivo","model":"V1945A","oaid":"ace2f5773dea8d67a154f9b44bd02d931939378b6a4736b20280b88bcf219c8b","offlinetime":0,"onlineseconds":0,"onlinetime":1631034591902,"recordid":"25264-1631034591902","updatetime":1631034591902}
|
||||
</td>
|
||||
<td>2021-09-08 01:09:51</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabw6yk-12l6</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; EML-AL00
|
||||
Build/HUAWEIEML-AL00)","androidid":"066ec6fc508e2877","appos":"android","appversion":"1.1.1","channel":"xxbzqqq_0","clientid":"kmvy8z8m","guserid":38426,"ip":"223.104.250.170","manufacturer":"HUAWEI","model":"EML-AL00","oaid":"ba377ec8-fff6-9f34-fb1f-bdf56dff7d20","offlinetime":0,"onlineseconds":0,"onlinetime":1631034609212,"recordid":"38426-1631034609212","updatetime":1631034609212}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:09</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabwar4-12l7</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 8.0.0; KNT-AL20
|
||||
Build/HUAWEIKNT-AL20)","androidid":"b0e13f2050e3e29a","appos":"android","appversion":"1.1.1","channel":"xxbzbd_0","clientid":"kmvy8z8m","guserid":32665,"imei":"863603037112999","ip":"223.104.63.235","manufacturer":"HUAWEI","model":"KNT-AL20","oaid":"ff5ffffe-76f7-5444-f7dd-9fa5deb76a75","offlinetime":0,"onlineseconds":0,"onlinetime":1631034614128,"recordid":"32665-1631034614128","updatetime":1631034614128}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:14</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabwn4e-12l8</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; OXF-AN00
|
||||
Build/HUAWEIOXF-AN00)","androidid":"6640361dcae0c18a","appos":"android","appversion":"1.1.0","channel":"xxbzkuaishou0422_9","clientid":"kmvy8z8m","guserid":20005,"ip":"121.239.208.209","manufacturer":"HUAWEI","model":"OXF-AN00","oaid":"9dbbfddf-fbb5-a48a-dd63-fffdbaf3df62","offlinetime":0,"onlineseconds":0,"onlinetime":1631034630158,"recordid":"20005-1631034630158","updatetime":1631034630158}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:30</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabwp37-12l9</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; vivo NEX A
|
||||
Build/QP1A.190711.020)","androidid":"9d17cca826513090","appos":"android","appversion":"1.1.1","channel":"xxbzqqq_0","clientid":"kmvy8z8m","guserid":38992,"ip":"36.128.86.158","manufacturer":"vivo","model":"vivo
|
||||
NEX
|
||||
A","oaid":"dc7e96b4cd8a9e4718565b24dc02181a8e1d3f551eb71c73ad6560e9b6853161","offlinetime":0,"onlineseconds":0,"onlinetime":1631034632707,"recordid":"38992-1631034632707","updatetime":1631034632707}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:32</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabwr1x-12la</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 10; SNE-AL00
|
||||
Build/HUAWEISNE-AL00)","androidid":"c1e5bf34133549f3","appos":"android","appversion":"1.1.1","channel":"xxbzqqq_0","clientid":"kmvy8z8m","guserid":15265,"ip":"183.94.28.13","manufacturer":"HUAWEI","model":"SNE-AL00","oaid":"febed6de-7eff-bcdc-b978-f6f6ebe7bbd0","offlinetime":0,"onlineseconds":0,"onlinetime":1631034635253,"recordid":"15265-1631034635253","updatetime":1631034635253}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:35</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabx6o9-12lb</td>
|
||||
<td>sdk-record</td>
|
||||
<td>{"appmodel":"Redmi Note 8
|
||||
Pro","appos":"android","apptoken":"3e8632ed3341a36d","channelmark":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","createtime":1631034655496,"guserid":41045,"ip":"106.45.158.8","oaid":"3e8632ed3341a36d","recordid":"d52d6bc6cdf44528986ce9dc716ea20a","systemversion":"28","type":"ANIMATE","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:10:55</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabxe8e-12lc</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 9; Redmi Note 8 Pro
|
||||
MIUI/V11.0.3.0.PGGCNXM)","androidid":"10eda96ca0c244a8","appos":"android","appversion":"1.1.1","channel":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","guserid":41045,"imei":"869898044685797","ip":"106.45.158.8","manufacturer":"Xiaomi","model":"Redmi
|
||||
Note 8
|
||||
Pro","oaid":"3e8632ed3341a36d","offlinetime":0,"onlineseconds":0,"onlinetime":1631034665293,"recordid":"41045-1631034665293","updatetime":1631034665293}
|
||||
</td>
|
||||
<td>2021-09-08 01:11:05</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabxpm4-12ld</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 8.1.0; ONEPLUS A5000
|
||||
Build/OPM1.171019.011)","androidid":"0842a50fa1f1fca2","appos":"android","appversion":"1.1.0","channel":"xxbzhaoyouxi_0","clientid":"kmvy8z8m","guserid":22950,"imei":"866265036244053","ip":"120.42.180.122","manufacturer":"OnePlus","model":"ONEPLUS
|
||||
A5000","offlinetime":0,"onlineseconds":0,"onlinetime":1631034680044,"recordid":"22950-1631034680044","updatetime":1631034680044}
|
||||
</td>
|
||||
<td>2021-09-08 01:11:20</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktaby4mn-12le</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 11; M2002J9E
|
||||
Build/RKQ1.200826.002)","androidid":"0d54c9c9cf83e30b","appos":"android","appversion":"1.1.1","channel":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","guserid":40812,"ip":"60.25.158.105","manufacturer":"Xiaomi","model":"M2002J9E","oaid":"f54443e5f13ad788","offlinetime":0,"onlineseconds":0,"onlinetime":1631034699503,"recordid":"40812-1631034699503","updatetime":1631034699503}
|
||||
</td>
|
||||
<td>2021-09-08 01:11:39</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabzo3n-12lf</td>
|
||||
<td>sdk-record</td>
|
||||
<td>{"appmodel":"Redmi Note 8
|
||||
Pro","appos":"android","apptoken":"3e8632ed3341a36d","channelmark":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","createtime":1631034771393,"guserid":41045,"ip":"106.45.158.8","oaid":"3e8632ed3341a36d","recordid":"56b1a079459f46a497131866a3944b14","systemversion":"28","type":"ANIMATE","version":"1.1.1"}
|
||||
</td>
|
||||
<td>2021-09-08 01:12:51</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ktabzvnx-12lg</td>
|
||||
<td>sdk-guser-active</td>
|
||||
<td>{"agent":"Dalvik/2.1.0 (Linux; U; Android 9; Redmi Note 8 Pro
|
||||
MIUI/V11.0.3.0.PGGCNXM)","androidid":"10eda96ca0c244a8","appos":"android","appversion":"1.1.1","channel":"xxbz-tt-lcy_4","clientid":"kmvy8z8m","guserid":41045,"imei":"869898044685797","ip":"106.45.158.8","manufacturer":"Xiaomi","model":"Redmi
|
||||
Note 8
|
||||
Pro","oaid":"3e8632ed3341a36d","offlinetime":0,"onlineseconds":0,"onlinetime":1631034781197,"recordid":"41045-1631034781197","updatetime":1631034781197}
|
||||
</td>
|
||||
<td>2021-09-08 01:13:01</td>
|
||||
<td><a href="javascript:;">详情</a> <a href="javascript:;">编辑</a> <a href="javascript:;">删除</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
Reference in New Issue
Block a user