feat: 后端全量更新 - 含所有本次需求
- Contract.php: 返回合约账户余额(balance_contract) - My.php: 地址管理增加BTC/ETH - AppContract.php: 一键平仓(closeall) - AppProxy.php: 代理专属注册链接 + 分级权限(L1/L2) - site.php: 手续费减半(0.018→0.009) - agent_permission_setup.sql: 代理权限SQL - crypto_news_crawler.py: 新闻自动采集脚本
This commit is contained in:
Executable
+57
@@ -0,0 +1,57 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Questions')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-questions" class="form-control " rows="5" name="row[questions]" cols="50"></textarea>
|
||||
<span class="help-block">一行一个问法,用户以任意一个问法达到匹配度,则自动回复</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Match')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-match" data-rule="required;range(1~100)" class="form-control" name="row[match]" type="number" value="100">
|
||||
<span class="help-block">用户提问达到此匹配度,则自动回复 <a class="test_match" href="javascript:;">匹配度测试</a></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Answer')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-answer" class="form-control editor" rows="5" name="row[answer]" cols="50"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Admin_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:Form::selectpages('row[admin_id]', null, 'auth/admin/index', 'nickname', 'id', [])}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" data-rule="required" class="form-control" name="row[weigh]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="1" }checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
<span class="help-block">万能知识:当所有知识点均无法匹配时,则自动回复万能知识</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
Executable
+55
@@ -0,0 +1,55 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Questions')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-questions" class="form-control " rows="5" name="row[questions]" cols="50">{$row.questions|htmlentities}</textarea>
|
||||
<span class="help-block">一行一个问法,用户以任意一个问法达到匹配度,则自动回复</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Match')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-match" data-rule="required;range(1~100)" class="form-control" name="row[match]" type="number" value="{$row.match|htmlentities}">
|
||||
<span class="help-block">用户提问达到此匹配度,则自动回复 <a class="test_match" href="javascript:;">匹配度测试</a></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Answer')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-answer" class="form-control editor" rows="5" name="row[answer]" cols="50">{$row.answer|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Admin_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:Form::selectpages('row[admin_id]', $row.admin_id, 'auth/admin/index', 'nickname', 'id', [])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" data-rule="required" class="form-control" name="row[weigh]" type="number" value="{$row.weigh}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status" }checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
<span class="help-block">万能知识:当所有知识点均无法匹配时,则自动回复万能知识</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
Executable
+49
@@ -0,0 +1,49 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
<ul class="nav nav-tabs" data-field="status">
|
||||
<li class="active"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}"><i class="fa fa-refresh"></i>
|
||||
</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('kefu/kbs/add')?'':'hide'}" title="{:__('Add')}"><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('kefu/kbs/edit')?'':'hide'}" title="{:__('Edit')}"><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('kefu/kbs/del')?'':'hide'}" title="{:__('Delete')}"><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!--<a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('kefu/kbs/import')?'':'hide'}" title="{:__('Import')}" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> {:__('Import')}</a>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('kefu/kbs/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li>
|
||||
<a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=0"><i class="fa fa-eye"></i> {:__('Set to 0')}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=1"><i class="fa fa-eye-slash"></i> {:__('Set to 1')}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('kefu/kbs/recyclebin')?'':'hide'}" href="kefu/kbs/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('kefu/kbs/edit')}"
|
||||
data-operate-del="{:$auth->check('kefu/kbs/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh')}
|
||||
<a class="btn btn-info btn-multi btn-disabled disabled {:$auth->check('kefu/kbs/restore')?'':'hide'}" href="javascript:;" data-url="kefu/kbs/restore" data-action="restore"><i class="fa fa-rotate-left"></i> {:__('Restore')}</a>
|
||||
<a class="btn btn-danger btn-multi btn-disabled disabled {:$auth->check('kefu/kbs/destroy')?'':'hide'}" href="javascript:;" data-url="kefu/kbs/destroy" data-action="destroy"><i class="fa fa-times"></i> {:__('Destroy')}</a>
|
||||
<a class="btn btn-success btn-restoreall {:$auth->check('kefu/kbs/restore')?'':'hide'}" href="javascript:;" data-url="kefu/kbs/restore" title="{:__('Restore all')}"><i class="fa fa-rotate-left"></i> {:__('Restore all')}</a>
|
||||
<a class="btn btn-danger btn-destroyall {:$auth->check('kefu/kbs/destroy')?'':'hide'}" href="javascript:;" data-url="kefu/kbs/destroy" title="{:__('Destroy all')}"><i class="fa fa-times"></i> {:__('Destroy all')}</a>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover"
|
||||
data-operate-restore="{:$auth->check('kefu/kbs/restore')}"
|
||||
data-operate-destroy="{:$auth->check('kefu/kbs/destroy')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
<style type="text/css">
|
||||
.panel-body {
|
||||
padding-top: 0;
|
||||
}
|
||||
.progress {
|
||||
width: 80%;
|
||||
display: none;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.bg-success {
|
||||
padding: 15px;
|
||||
}
|
||||
</style>
|
||||
<div class="row animated fadeInRight">
|
||||
<div class="col-md-8 col-md-offset-2">
|
||||
<div class="box box-success">
|
||||
<div class="panel-heading tabbable"></div>
|
||||
<div class="panel-body form-horizontal">
|
||||
<p class="bg-success">本功能用于测试两句话的匹配度,以方便您配置知识库自动回复</p>
|
||||
<div class="form-group">
|
||||
<label for="str1" class="control-label col-xs-12 col-sm-2">语料一:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea name="str1" id="str1" cols="30" rows="3"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="str2" class="control-label col-xs-12 col-sm-2">语料二:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea name="str2" id="str2" cols="30" rows="3"></textarea>
|
||||
<span class="help-block">请输入两段语料以测试它们的匹配度</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="button" class="btn btn-success btn-embossed post_test_match">测试匹配度</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success" id="match" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="min-width: 20%;width: 100%">
|
||||
未开始匹配
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
Reference in New Issue
Block a user