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: 新闻自动采集脚本
@@ -0,0 +1,23 @@
|
||||
<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">{:__('User_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-rule="required" data-source="kefu/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="">
|
||||
</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">
|
||||
<input id="c-admin_id" data-rule="required" data-source="auth/admin/index" data-field="nickname" class="form-control selectpage" name="row[admin_id]" type="text" value="">
|
||||
</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>
|
||||
@@ -0,0 +1,23 @@
|
||||
<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">{:__('User_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-rule="required" data-source="kefu/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
</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">
|
||||
<input id="c-admin_id" data-rule="required" data-source="auth/admin/index" data-field="nickname" class="form-control selectpage" name="row[admin_id]" type="text" value="{$row.admin_id|htmlentities}">
|
||||
</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>
|
||||
@@ -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">
|
||||
<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/blacklist/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/blacklist/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/blacklist/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('kefu/blacklist/edit')}"
|
||||
data-operate-del="{:$auth->check('kefu/blacklist/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,243 @@
|
||||
<style type="text/css">
|
||||
.panel-body {
|
||||
padding-top: 0;
|
||||
}
|
||||
.middle_inline {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.kefu_form_control .sp_container {
|
||||
width: 100% !important;
|
||||
}
|
||||
</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">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#tab1" aria-controls="tab1" role="tab" data-toggle="tab">常规配置</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#tab2" aria-controls="tab2" role="tab" data-toggle="tab">会话窗口</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#tab3" aria-controls="tab3" role="tab" data-toggle="tab">自动邀请</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="#tab5" aria-controls="tab5" role="tab" data-toggle="tab">微信小程序</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a href="javascript:;" class="run_config">运行配置</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<form id="update-form" role="form" data-toggle="validator" method="POST" action="{:url('kefu.config/update')}">
|
||||
<div class="box-body tab-content">
|
||||
<div role="tabpanel" class="tab-pane fade in active" id="tab1">
|
||||
<div class="form-group">
|
||||
<label for="chat_name" class="control-label">{:__('Chat name')}:</label>
|
||||
<input type="text" class="form-control" id="chat_name" name="row[chat_name]" value="{$config_list.chat_name|htmlentities}"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Ecs Exit')}:</label>
|
||||
{:build_radios('row[ecs_exit]', ['1'=>__('Ecs Exit 1'), '0'=>__('Ecs Exit 0')], $config_list.ecs_exit)}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Send message key')}:</label>
|
||||
{:build_radios('row[send_message_key]', ['1'=>__('Send message key 1'), '0'=>__('Send message key 0')], $config_list.send_message_key)}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Input status display')}:</label>
|
||||
{:build_radios('row[input_status_display]', ['0'=>__('Input status display 0'), '1'=>__('Input status display 1'), '2'=>__('Input status display 2')], $config_list.input_status_display)}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="new_user_tip" class="control-label">{:__('New user tip')}:</label>
|
||||
<input type="text" class="form-control" id="new_user_tip" name="row[new_user_tip]" value="{$config_list.new_user_tip|htmlentities}"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="new_user_msg" class="control-label">{:__('New user msg')}:</label>
|
||||
<textarea rows="3" class="form-control" id="new_user_msg" name="row[new_user_msg]" value="">{$config_list.new_user_msg|htmlentities}</textarea>
|
||||
<span class="help-block">自动发送给新用户的消息,客服代表的欢迎语留空时,使用此处设置的作为欢迎语</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">客服分配方式:</label>
|
||||
{:build_radios('row[csr_distribution]', ['0' => '按工作强度', '1' => '智能分配', '2' => '轮流分配'], $config_list.csr_distribution)}
|
||||
<span class="help-block" id="distribution_help">
|
||||
{switch name="config_list.csr_distribution"}
|
||||
{case value="0"}按工作强度:优先分配给当前接待量最少的客服,若有多个客服接待量相同,则分配给其中最久未进行接待的客服{/case}
|
||||
{case value="1"}智能分配:根据接待上限和当前接待量,分配给最能接待的客服{/case}
|
||||
{case value="2"}轮流分配:每次都分配给最久未进行接待的客服{/case}
|
||||
{default /}
|
||||
{/switch}
|
||||
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">轨迹保存方案:</label>
|
||||
{:build_radios('row[trajectory_save_cycle]', ['0'=> '保留7天', '1'=> '保留30天', '2'=> '保留60天', '3'=> '永久保留'], $config_list.trajectory_save_cycle)}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">知识库自动回复(总开关):</label>
|
||||
{:build_radios('row[kbs_switch]', ['0'=> '关闭', '1'=> '开启'], $config_list.kbs_switch)}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="new_message_notice" class="control-label">新留言钉钉通知:</label>
|
||||
<textarea rows="3" class="form-control" id="new_message_notice" name="row[new_message_notice]" value="">{$config_list.new_message_notice|htmlentities}</textarea>
|
||||
<span class="help-block">此功能依赖插件《<a target="_blank" href="https://www.fastadmin.net/store/dinghorn.html">钉钉小喇叭</a>》,请在此处填写机器人ID,一行一个</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane fade" id="tab2">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">收到新消息抖动窗口:</label>
|
||||
{:build_radios('row[new_message_shake]', ['3'=> '抖动', '2'=> '仅客服端抖动', '1'=> '仅用户端抖动', '0'=> '不抖动'], $config_list.new_message_shake)}
|
||||
<span class="help-block">窗口为打开状态时,才会抖动</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="announcement" class="control-label">{:__('Announcement')}:</label>
|
||||
<textarea rows="3" class="form-control" id="announcement" name="row[announcement]" value="">{$config_list.announcement|htmlentities}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Slider images')}:</label>
|
||||
<div class="input-group">
|
||||
<input id="c-slider_images" class="form-control" size="50" name="row[slider_images]" type="text" value="{$config_list.slider_images}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="plupload-slider_images" class="btn btn-danger plupload" data-input-id="c-slider_images" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="true" data-preview-id="p-slider_images"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-slider_images" class="btn btn-primary fachoose" data-input-id="c-slider_images" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-slider_images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline plupload-preview" id="p-slider_images"></ul>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Chat introduces')}:</label>
|
||||
<textarea id="c-chat_introduces" class="form-control editor" rows="5" name="row[chat_introduces]" cols="50">{$config_list.chat_introduces|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane fade" id="tab3">
|
||||
<div class="form-group">
|
||||
<label class="control-label middle_inline">开启自动邀请:</label>
|
||||
<div class="middle_inline">
|
||||
{:Form::switcher('row[auto_invitation_switch]', $config_list.auto_invitation_switch, ['color'=>'success'])}
|
||||
</div>
|
||||
<span class="help-block">开启时,将在指定时机,为用户弹出“邀请对话”窗口</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label middle_inline">仅首次访问自动邀请:</label>
|
||||
<div class="middle_inline">
|
||||
{:Form::switcher('row[only_first_invitation]', $config_list.only_first_invitation, ['color'=>'success'])}
|
||||
</div>
|
||||
<span class="help-block">开启时,只在新用户首次访问时自动弹出邀请框</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label middle_inline">仅客服在线自动邀请:</label>
|
||||
<div class="middle_inline">
|
||||
{:Form::switcher('row[only_csr_online_invitation]', $config_list.only_csr_online_invitation, ['color'=>'success'])}
|
||||
</div>
|
||||
<span class="help-block">开启时,只在有客服在线时自动弹出邀请框</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="auto_invitation_timing" class="control-label">自动邀请时机:</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">停留</div>
|
||||
<input type="text" class="form-control" id="auto_invitation_timing" name="row[auto_invitation_timing]" value="{$config_list.auto_invitation_timing|htmlentities}"/>
|
||||
<div class="input-group-addon"><span class="text-warning">秒</span></div>
|
||||
</div>
|
||||
<span class="help-block">用户停留此秒数后,为用户弹出“邀请对话”窗口</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label">邀请框背景:</label>
|
||||
<div class="input-group">
|
||||
<input id="c-invite_box_img" class="form-control" size="50" name="row[invite_box_img]" type="text" value="{$config_list.invite_box_img}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="plupload-invite_box_img" class="btn btn-danger plupload" data-input-id="c-invite_box_img" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-invite_box_img"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-invite_box_img" class="btn btn-primary fachoose" data-input-id="c-invite_box_img" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-invite_box_img"></span>
|
||||
</div>
|
||||
<ul class="row list-inline plupload-preview" id="p-invite_box_img"></ul>
|
||||
<span class="help-block">建议大小:400px*180px</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane fade" id="tab5">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="wechat_app_id" class="control-label">小程序appId:</label>
|
||||
<input type="text" class="form-control" id="wechat_app_id" name="row[wechat_app_id]" value="{$config_list.wechat_app_id|htmlentities}"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="wechat_app_secret" class="control-label">小程序appSecret:</label>
|
||||
<input type="text" class="form-control" id="wechat_app_secret" name="row[wechat_app_secret]" value="{$config_list.wechat_app_secret|htmlentities}"/>
|
||||
</div>
|
||||
|
||||
<hr class="divider">
|
||||
|
||||
<span class="help-block">
|
||||
请登录小程序<a target="_blank" href="https://mp.weixin.qq.com/">MP后台</a>->开发->开发设置->消息推送->继续以下设置->请保存设置后微信端再进行验证
|
||||
</span>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="wechat_app_secret" class="control-label">服务器地址(url):</label>
|
||||
<input type="text" class="form-control" readonly="readonly" value="http://您的域名/api/kefu/acceptWxMsg"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="wechat_token" class="control-label">通信令牌(token):</label>
|
||||
<input type="text" placeholder="英文或数字,3-32字符" class="form-control" id="wechat_token" name="row[wechat_token]" value="{$config_list.wechat_token|htmlentities}"/>
|
||||
<span class="help-block">任意填写,需与MP后台->开发->开发设置->消息推送中的Token一致</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="wechat_encodingkey" class="control-label">解密密钥(EncodingAESKey):</label>
|
||||
<input type="text" placeholder="英文或数字,43位字符" class="form-control" id="wechat_encodingkey" name="row[wechat_encodingkey]" value="{$config_list.wechat_encodingkey|htmlentities}"/>
|
||||
<span class="help-block">任意填写,需与MP后台->开发->开发设置->消息推送中的EncodingAESKey一致</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="wechat_app_secret" class="control-label">消息加密模式:</label>
|
||||
<input type="text" class="form-control" readonly="readonly" value="安全模式"/>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="wechat_app_secret" class="control-label">数据格式:</label>
|
||||
<input type="text" class="form-control" readonly="readonly" value="JSON"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group" style="margin-top: 15px;">
|
||||
<button type="submit" class="btn btn-success">{:__('Submit')}</button>
|
||||
<button type="reset" class="btn btn-default">{:__('Reset')}</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,38 @@
|
||||
<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">{:__('Admin_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-source="auth/admin/index" data-field="nickname" class="form-control selectpage" name="row[admin_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Ceiling')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-ceiling" data-rule="required" class="form-control" name="row[ceiling]" type="number" value="1">
|
||||
<span class="help-block">设置接待上限有助于自动分配客服,不会造成游客无人接待的情况,详见客服分配方式</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Keep Alive')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:Form::switcher('row[keep_alive]', 0, ['color'=>'success'])}
|
||||
<span class="help-block">开启时,客服代表将永久保持在线状态;关闭后,客服需完成一次上下线,状态才能显示正常</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Welcome Msg')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-welcome_msg" class="form-control editor" rows="3" name="row[welcome_msg]" cols="50"></textarea>
|
||||
<span class="help-block">{:__('Welcome Msg Introduce')}</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="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,40 @@
|
||||
<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">{:__('Admin_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-source="auth/admin/index" data-field="nickname" class="form-control selectpage" name="row[admin_id]" type="text" value="{$row.admin_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Ceiling')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-ceiling" data-rule="required" class="form-control" name="row[ceiling]" type="number" value="{$row.ceiling|htmlentities}">
|
||||
<span class="help-block">设置接待上限有助于自动分配客服,不会造成游客无人接待的情况,详见客服分配方式</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Keep Alive')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:Form::switcher('row[keep_alive]', $row.keep_alive, ['color'=>'success'])}
|
||||
<span class="help-block">开启时,客服代表将永久保持在线状态;关闭后,客服需完成一次上下线,状态才能显示正常</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Welcome Msg')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-welcome_msg" class="form-control editor" rows="3" name="row[welcome_msg]" cols="50">{$row.welcome_msg|htmlentities}</textarea>
|
||||
<span class="help-block">{:__('Welcome Msg Introduce')}</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="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,52 @@
|
||||
<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/csrkpi/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/csrkpi/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/csrkpi/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a> -->
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('kefu/csrkpi/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/csrkpi/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 Status 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 Status 1')}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=2"><i class="fa fa-eye-slash"></i> {:__('Set to Status 2')}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('kefu/csrkpi/edit')}"
|
||||
data-operate-del="{:$auth->check('kefu/csrkpi/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,46 @@
|
||||
<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">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-title" data-rule="required" class="form-control" name="row[title]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-content" data-rule="required" class="form-control editor" rows="5" name="row[content]" cols="50"></textarea>
|
||||
</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}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{eq name="isSuperAdmin" value="1"}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">通用快捷回复:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:Form::radios('row[is_general]', ['1'=>'是', '0'=>'否'], '0', ['data-rule'=>'required'])}
|
||||
</div>
|
||||
</div>
|
||||
{/eq}
|
||||
|
||||
<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>
|
||||
@@ -0,0 +1,44 @@
|
||||
<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">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-title" data-rule="required" class="form-control" name="row[title]" type="text" value="{$row.title|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-content" data-rule="required" class="form-control editor" rows="5" name="row[content]" cols="50">{$row.content|htmlentities}</textarea>
|
||||
</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}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{eq name="isSuperAdmin" value="1"}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">通用快捷回复:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:Form::radios('row[is_general]', ['1'=>'是', '0'=>'否'], $row.is_general, ['data-rule'=>'required'])}
|
||||
</div>
|
||||
</div>
|
||||
{/eq}
|
||||
|
||||
<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>
|
||||
@@ -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/fastreply/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/fastreply/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/fastreply/del')?'':'hide'}" title="{:__('Delete')}"><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('kefu/fastreply/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/fastreply/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 Status 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 Status 1')}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('kefu/fastreply/recyclebin')?'':'hide'}" href="kefu/fastreply/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/fastreply/edit')}"
|
||||
data-operate-del="{:$auth->check('kefu/fastreply/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -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/fastreply/restore')?'':'hide'}" href="javascript:;" data-url="kefu/fastreply/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/fastreply/destroy')?'':'hide'}" href="javascript:;" data-url="kefu/fastreply/destroy" data-action="destroy"><i class="fa fa-times"></i> {:__('Destroy')}</a>
|
||||
<a class="btn btn-success btn-restoreall {:$auth->check('kefu/fastreply/restore')?'':'hide'}" href="javascript:;" data-url="kefu/fastreply/restore" title="{:__('Restore all')}"><i class="fa fa-rotate-left"></i> {:__('Restore all')}</a>
|
||||
<a class="btn btn-danger btn-destroyall {:$auth->check('kefu/fastreply/destroy')?'':'hide'}" href="javascript:;" data-url="kefu/fastreply/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/fastreply/restore')}"
|
||||
data-operate-destroy="{:$auth->check('kefu/fastreply/destroy')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,34 @@
|
||||
<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">{:__('User_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" data-rule="required" class="form-control" name="row[name]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Contact')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-contact" data-rule="required" class="form-control" name="row[contact]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Message')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-message" class="form-control " rows="5" name="row[message]" cols="50"></textarea>
|
||||
</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>
|
||||
@@ -0,0 +1,50 @@
|
||||
<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">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" data-rule="required" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Contact')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-contact" data-rule="required" class="form-control" name="row[contact]" type="text" value="{$row.contact|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Message')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-message" class="form-control " rows="5" name="row[message]" cols="50">{$row.message|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Trajectory')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-nowrap">
|
||||
<tr>
|
||||
<th class="text-center">时间</th>
|
||||
<th class="text-center">访问页面</th>
|
||||
<th class="text-center">来路</th>
|
||||
</tr>
|
||||
{volist name="trajectory" id="item"}
|
||||
<tr>
|
||||
<td>{$item.createtime}</td>
|
||||
<td>{$item.url}</td>
|
||||
<td>{$item.referrer}</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
</table>
|
||||
</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>
|
||||
@@ -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">
|
||||
<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/leavemessage/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/leavemessage/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/leavemessage/del')?'':'hide'}" title="{:__('Delete')}"><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('kefu/leavemessage/edit')}"
|
||||
data-operate-del="{:$auth->check('kefu/leavemessage/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,64 @@
|
||||
<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">{:__('Session_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-session_id" data-rule="required" data-source="session/index" class="form-control selectpage" name="row[session_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sender_identity')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-sender_identity" data-rule="required" class="form-control selectpicker" name="row[sender_identity]">
|
||||
{foreach name="senderIdentityList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="0"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sender_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-sender_id" data-rule="required" data-source="sender/index" class="form-control selectpage" name="row[sender_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Message_type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-message_type" data-rule="required" class="form-control selectpicker" name="row[message_type]">
|
||||
{foreach name="messageTypeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="0"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Message')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-message" class="form-control " rows="5" name="row[message]" cols="50"></textarea>
|
||||
</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="0"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</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>
|
||||
@@ -0,0 +1,64 @@
|
||||
<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">{:__('Session_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-session_id" class="form-control" name="row[session_id]" type="text" value="{$row.session_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sender_identity')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-sender_identity" data-rule="required" class="form-control selectpicker" name="row[sender_identity]">
|
||||
{foreach name="senderIdentityList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.sender_identity" }selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sender_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-sender_id" class="form-control" name="row[sender_id]" type="text" value="{$row.sender_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Message_type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-message_type" data-rule="required" class="form-control selectpicker" name="row[message_type]">
|
||||
{foreach name="messageTypeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.message_type" }selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Message')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-message" class="form-control editor" rows="5" name="row[message]" cols="50">{$row.message|htmlentities}</textarea>
|
||||
</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}
|
||||
</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>
|
||||
@@ -0,0 +1,50 @@
|
||||
<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/record/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/record/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/record/del')?'':'hide'}" title="{:__('Delete')}"><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('kefu/record/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/record/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 Status 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 Status 1')}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('kefu/record/edit')}"
|
||||
data-operate-del="{:$auth->check('kefu/record/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,135 @@
|
||||
<style type="text/css">
|
||||
.chat {
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.record_item {
|
||||
margin-top: 8px;
|
||||
}
|
||||
.user_name {
|
||||
font-weight: bold;
|
||||
}
|
||||
.bubble {
|
||||
font-size: 16px;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
clear: both;
|
||||
left: 6px;
|
||||
margin-bottom: 8px;
|
||||
padding: 13px 14px;
|
||||
vertical-align: top;
|
||||
border-radius: 5px;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
}
|
||||
.bubble.you {
|
||||
background: #eceff1;
|
||||
color: #1a1a1a;
|
||||
}
|
||||
.bubble.me {
|
||||
background: #00b0ff;
|
||||
color: #fff;
|
||||
}
|
||||
.bubble:before {
|
||||
position: absolute;
|
||||
top: 19px;
|
||||
display: block;
|
||||
width: 8px;
|
||||
height: 6px;
|
||||
content: '\00a0';
|
||||
-webkit-transform: rotate(29deg) skew(-35deg);
|
||||
transform: rotate(29deg) skew(-35deg);
|
||||
}
|
||||
.bubble.you:before {
|
||||
left: -4px;
|
||||
background-color: #eceff1;
|
||||
}
|
||||
.bubble.me:before {
|
||||
left: -4px;
|
||||
background-color: #00b0ff;
|
||||
}
|
||||
.bubble .emoji {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
.bubble .record {
|
||||
max-height: 200px;
|
||||
color: #fff;
|
||||
}
|
||||
.status {
|
||||
position: relative;
|
||||
float: right;
|
||||
width: 100%;
|
||||
/* margin: 20px 0; */
|
||||
margin-bottom: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
.status span {
|
||||
font-size: 12px;
|
||||
display: inline-block;
|
||||
background: #ccc;
|
||||
color: #fff;
|
||||
line-height: 12px;
|
||||
border-radius: 5px;
|
||||
padding: 3px 10px;
|
||||
}
|
||||
.record_card {
|
||||
width: 400px;
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 8px 8px 8px 8px;
|
||||
}
|
||||
.record_card img {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
min-width: 90px;
|
||||
}
|
||||
.record_card .record_card_body {
|
||||
height: 90px;
|
||||
width: 100%;
|
||||
margin: 0 8px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.record_card .record_card_title {
|
||||
font-size: 15px;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
line-height: 18px;
|
||||
height: 36px;
|
||||
color: #0d0d0d;
|
||||
}
|
||||
.record_card .record_card_note {
|
||||
font-size: 14px;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
line-height: 16px;
|
||||
height: 32px;
|
||||
color: #999999;
|
||||
margin-top: 3px;
|
||||
}
|
||||
.record_card .record_card_price span:last-child {
|
||||
margin-left: 10px;
|
||||
color: #999999;
|
||||
font-size: 14px;
|
||||
}
|
||||
.record_card .record_card_price span:first-child {
|
||||
margin-left: -3px;
|
||||
font-size: 18px;
|
||||
color: rgba(231, 76, 60, 1);
|
||||
}
|
||||
</style>
|
||||
<div class="chat">
|
||||
|
||||
</div>
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,22 @@
|
||||
<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">{:__('User_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Csr_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-csr_id" data-rule="required" data-source="csr/index" class="form-control selectpage" name="row[csr_id]" type="text" value="">
|
||||
</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>
|
||||
@@ -0,0 +1,22 @@
|
||||
<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">{:__('User_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Csr_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-csr_id" data-rule="required" data-source="csr/index" class="form-control selectpage" name="row[csr_id]" type="text" value="{$row.csr_id|htmlentities}">
|
||||
</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>
|
||||
@@ -0,0 +1,27 @@
|
||||
<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">
|
||||
<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/session/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/session/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/session/del')?'':'hide'}" title="{:__('Delete')}"><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('kefu/session/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> -->
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('kefu/session/recyclebin')?'':'hide'}" href="kefu/session/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=""
|
||||
data-operate-del="{:$auth->check('kefu/session/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -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/session/restore')?'':'hide'}" href="javascript:;" data-url="kefu/session/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/session/destroy')?'':'hide'}" href="javascript:;" data-url="kefu/session/destroy" data-action="destroy"><i class="fa fa-times"></i> {:__('Destroy')}</a>
|
||||
<a class="btn btn-success btn-restoreall {:$auth->check('kefu/session/restore')?'':'hide'}" href="javascript:;" data-url="kefu/session/restore" title="{:__('Restore all')}"><i class="fa fa-rotate-left"></i> {:__('Restore all')}</a>
|
||||
<a class="btn btn-danger btn-destroyall {:$auth->check('kefu/session/destroy')?'':'hide'}" href="javascript:;" data-url="kefu/session/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/session/restore')}"
|
||||
data-operate-destroy="{:$auth->check('kefu/session/destroy')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,48 @@
|
||||
<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">{:__('Mark')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-mark" data-rule="required" class="form-control" name="row[mark]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-title" data-rule="required" class="form-control" name="row[title]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Icon_image')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-icon_image" class="form-control" size="50" name="row[icon_image]" type="text" value="">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="plupload-icon_image" class="btn btn-danger plupload" data-input-id="c-icon_image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-icon_image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-icon_image" class="btn btn-primary fachoose" data-input-id="c-icon_image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-icon_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline plupload-preview" id="p-icon_image"></ul>
|
||||
</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}
|
||||
</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>
|
||||
@@ -0,0 +1,62 @@
|
||||
<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">{:__('Mark')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-mark" readonly class="form-control" name="row[mark]" type="text" value="{$row.mark|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group data_api" style="display: none">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Data_api')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-data_api" placeholder="" class="form-control" name="row[data_api]" type="text" value="{$row.data_api|htmlentities}">
|
||||
<span class="help-block">{:__('Data Api Tip')}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group data_api" style="display: none">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Card_url')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-card_url" placeholder="" class="form-control" name="row[card_url]" type="text" value="{$row.card_url|htmlentities}">
|
||||
<span class="help-block">{:__('Card Api Tip')}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-title" data-rule="required" class="form-control" name="row[title]" type="text" value="{$row.title|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Icon_image')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-icon_image" class="form-control" size="50" name="row[icon_image]" type="text" value="{$row.icon_image|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="plupload-icon_image" class="btn btn-danger plupload" data-input-id="c-icon_image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-icon_image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-icon_image" class="btn btn-primary fachoose" data-input-id="c-icon_image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-icon_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline plupload-preview" id="p-icon_image"></ul>
|
||||
</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}
|
||||
</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>
|
||||
@@ -0,0 +1,39 @@
|
||||
<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">
|
||||
<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/toolbar/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/toolbar/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/toolbar/del')?'':'hide'}" title="{:__('Delete')}"><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('kefu/toolbar/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=1"><i class="fa fa-eye"></i> {:__('Set to normal')}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=0"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('kefu/toolbar/recyclebin')?'':'hide'}" href="kefu/toolbar/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/toolbar/edit')}"
|
||||
data-operate-del="{:$auth->check('kefu/toolbar/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -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/toolbar/restore')?'':'hide'}" href="javascript:;" data-url="kefu/toolbar/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/toolbar/destroy')?'':'hide'}" href="javascript:;" data-url="kefu/toolbar/destroy" data-action="destroy"><i class="fa fa-times"></i> {:__('Destroy')}</a>
|
||||
<a class="btn btn-success btn-restoreall {:$auth->check('kefu/toolbar/restore')?'':'hide'}" href="javascript:;" data-url="kefu/toolbar/restore" title="{:__('Restore all')}"><i class="fa fa-rotate-left"></i> {:__('Restore all')}</a>
|
||||
<a class="btn btn-danger btn-destroyall {:$auth->check('kefu/toolbar/destroy')?'':'hide'}" href="javascript:;" data-url="kefu/toolbar/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/toolbar/restore')}"
|
||||
data-operate-destroy="{:$auth->check('kefu/toolbar/destroy')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,66 @@
|
||||
<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">{:__('User_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Avatar')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-avatar" class="form-control" size="50" name="row[avatar]" type="text" value="">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="plupload-avatar" class="btn btn-danger plupload" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-avatar" class="btn btn-primary fachoose" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-avatar"></span>
|
||||
</div>
|
||||
<ul class="row list-inline plupload-preview" id="p-avatar"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Referrer')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-referrer" data-rule="required" class="form-control" name="row[referrer]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Contact')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-contact" data-rule="required" class="form-control" name="row[contact]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Note')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-note" data-rule="required" class="form-control" name="row[note]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Token')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-token" data-rule="required" class="form-control" name="row[token]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Wechat_openid')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-wechat_openid" data-rule="required" class="form-control" name="row[wechat_openid]" type="text" value="">
|
||||
</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>
|
||||
@@ -0,0 +1,41 @@
|
||||
<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">{:__('User_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="{$row.nickname|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Referrer')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-referrer" class="form-control" name="row[referrer]" type="text" value="{$row.referrer|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Contact')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-contact" class="form-control" name="row[contact]" type="text" value="{$row.contact|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Note')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-note" class="form-control" name="row[note]" type="text" value="{$row.note|htmlentities}">
|
||||
</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>
|
||||
@@ -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">
|
||||
<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/user/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/user/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/user/del')?'':'hide'}" title="{:__('Delete')}"><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('kefu/user/edit')}"
|
||||
data-operate-del="{:$auth->check('kefu/user/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 50 KiB |