feat(arc): 新增ARC设备管理功能

- 创建了ARC设备管理的完整CRUD功能模块
- 实现了后台控制器、模型、验证器和视图文件
- 配置了应用基础设置和站点信息参数
- 添加了API接口控制器和数据模型
- 集成了Bootstrap表格组件和表单验证功能
- 支持设备IMEI、APP ID、SDK KEY等关键信息管理
- 实现软删除和回收站功能
- 配置了前端页面模板和JavaScript交互逻辑
This commit is contained in:
2026-04-08 09:28:23 +08:00
parent 0a605caefe
commit e4cdd21c77
25 changed files with 1641 additions and 76 deletions

View File

@@ -0,0 +1,33 @@
<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">{:__('Imei')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-imei" class="form-control" name="row[imei]" type="text">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('App_id')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-app_id" class="form-control" name="row[app_id]" type="text">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Sdk_key')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-sdk_key" class="form-control" name="row[sdk_key]" type="text">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Active_key')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-active_key" class="form-control" name="row[active_key]" type="text">
</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-primary btn-embossed disabled">{:__('OK')}</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,33 @@
<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">{:__('Imei')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-imei" class="form-control" name="row[imei]" type="text" value="{$row.imei|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('App_id')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-app_id" class="form-control" name="row[app_id]" type="text" value="{$row.app_id|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Sdk_key')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-sdk_key" class="form-control" name="row[sdk_key]" type="text" value="{$row.sdk_key|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Active_key')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-active_key" class="form-control" name="row[active_key]" type="text" value="{$row.active_key|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-primary btn-embossed disabled">{:__('OK')}</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,29 @@
<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('arc/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('arc/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('arc/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('arc/recyclebin')?'':'hide'}" href="arc/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('arc/edit')}"
data-operate-del="{:$auth->check('arc/del')}"
width="100%">
</table>
</div>
</div>
</div>
</div>
</div>

View File

@@ -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('arc/restore')?'':'hide'}" href="javascript:;" data-url="arc/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('arc/destroy')?'':'hide'}" href="javascript:;" data-url="arc/destroy" data-action="destroy"><i class="fa fa-times"></i> {:__('Destroy')}</a>
<a class="btn btn-success btn-restoreall {:$auth->check('arc/restore')?'':'hide'}" href="javascript:;" data-url="arc/restore" title="{:__('Restore all')}"><i class="fa fa-rotate-left"></i> {:__('Restore all')}</a>
<a class="btn btn-danger btn-destroyall {:$auth->check('arc/destroy')?'':'hide'}" href="javascript:;" data-url="arc/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('arc/restore')}"
data-operate-destroy="{:$auth->check('arc/destroy')}"
width="100%">
</table>
</div>
</div>
</div>
</div>
</div>