Index.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <?php
  2. /**
  3. * FecShop file.
  4. *
  5. * @link http://www.fecshop.com/
  6. * @copyright Copyright (c) 2016 FecShop Software LLC
  7. * @license http://www.fecshop.com/license/
  8. */
  9. namespace fecadmin\block\log;
  10. use fecadmin\FecadminbaseBlock;
  11. use fecadmin\models\AdminUser;
  12. use fecadmin\models\AdminLog;
  13. use fec\helpers\CUrl;
  14. /**
  15. * @author Terry Zhao <2358269014@qq.com>
  16. * @since 1.0
  17. */
  18. class Index extends FecadminbaseBlock{
  19. public $_obj ;
  20. public $_paramKey = 'id';
  21. public $_defaultDirection = 'asc';
  22. # 初始化参数
  23. public function initParam(){
  24. # 定义编辑和删除的URL
  25. $this->_editUrl = ''; #CUrl::getUrl("fecadmin/log/indexedit");
  26. $this->_deleteUrl = ''; #CUrl::getUrl("fecadmin/account/indexdelete");
  27. $this->_obj = new AdminLog;
  28. $this->_paramKey = 'id';
  29. /*
  30. # 自定义参数如下:
  31. #排序默认为主键倒序
  32. $this->_orderField = 'created_at';
  33. $this->_sortDirection = 'asc';
  34. # 主键默认为id
  35. $this->_paramKey = 'id';
  36. #第一次打开默认为第一页,一页显示50个
  37. $this->_pageNum = 1;
  38. $this->_numPerPage;
  39. */
  40. parent::initParam();
  41. }
  42. public function getLastData(){
  43. # 返回数据的函数
  44. # 隐藏部分
  45. $pagerForm = $this->getPagerForm();
  46. # 搜索部分
  47. $searchBar = $this->getSearchBar();
  48. # 编辑 删除 按钮部分
  49. $editBar = $this->getEditBar();
  50. # 表头部分
  51. $thead = $this->getTableThead();
  52. # 表内容部分
  53. $tbody = $this->getTableTbody();
  54. # 分页部分
  55. $toolBar = $this->getToolBar($this->_param['numCount'],$this->_param['pageNum'],$this->_param['numPerPage']);
  56. return [
  57. 'pagerForm' => $pagerForm,
  58. 'searchBar' => $searchBar,
  59. 'editBar' => $editBar,
  60. 'thead' => $thead,
  61. 'tbody' => $tbody,
  62. 'toolBar' => $toolBar,
  63. ];
  64. }
  65. # 定义搜索部分字段格式
  66. public function getSearchArr(){
  67. $data = [
  68. [ # 字符串类型
  69. 'type'=>'inputtext',
  70. 'title'=>'账号',
  71. 'name'=>'account' ,
  72. 'columns_type' =>'string'
  73. ],
  74. [ # 字符串类型
  75. 'type'=>'inputtext',
  76. 'title'=>'操作人',
  77. 'name'=>'person' ,
  78. 'columns_type' =>'string'
  79. ],
  80. [ # 字符串类型
  81. 'type'=>'inputtext',
  82. 'title'=>'菜单',
  83. 'name'=>'menu' ,
  84. 'columns_type' =>'string'
  85. ],
  86. [ # 时间区间类型搜索
  87. 'type'=>'inputdatefilter',
  88. 'name'=> 'created_at',
  89. 'columns_type' =>'datetime',
  90. 'value'=>[
  91. 'gte'=>'LOG时间开始',
  92. 'lt' =>'LOG时间结束',
  93. ]
  94. ],
  95. ];
  96. return $data;
  97. }
  98. # 定义表格显示部分的配置
  99. public function getTableFieldArr(){
  100. $table_th_bar = [
  101. [
  102. 'orderField' => 'id',
  103. 'label' => 'ID',
  104. 'width' => '70',
  105. 'align' => 'center',
  106. ],
  107. [
  108. 'orderField' => 'account',
  109. 'label' => '账号',
  110. 'width' => '70',
  111. 'align' => 'center',
  112. ],
  113. [
  114. 'orderField' => 'person',
  115. 'label' => '操作人',
  116. 'width' => '70',
  117. 'align' => 'left',
  118. ],
  119. [
  120. 'orderField' => 'menu',
  121. 'label' => '操作菜单',
  122. 'width' => '70',
  123. 'align' => 'left',
  124. ],
  125. [
  126. 'orderField' => 'url',
  127. 'label' => 'URL',
  128. 'width' => '220',
  129. 'align' => 'left',
  130. ],
  131. [
  132. 'orderField' => 'created_at',
  133. 'label' => '创建时间',
  134. 'width' => '130',
  135. 'align' => 'center',
  136. //'convert' => ['datetime' =>'date'], # int date datetime 显示的转换
  137. ],
  138. ];
  139. return $table_th_bar ;
  140. }
  141. # table 内容部分
  142. public function getTableTbodyHtml($data){
  143. $fileds = $this->getTableFieldArr();
  144. $str .= '';
  145. $csrfString = \fec\helpers\CRequest::getCsrfString();
  146. foreach($data as $one){
  147. $str .= '<tr target="sid_user" rel="'.$one[$this->_paramKey].'">';
  148. $str .= '<td><input name="'.$this->_paramKey.'s" value="'.$one[$this->_paramKey].'" type="checkbox"></td>';
  149. foreach($fileds as $field){
  150. $orderField = $field['orderField'];
  151. $display = $field['display'];
  152. $val = $one[$orderField];
  153. $originVal = $one[$orderField];
  154. if($val){
  155. if(isset($field['display']) && !empty($field['display'])){
  156. $display = $field['display'];
  157. $val = $display[$val] ? $display[$val] : $val;
  158. }
  159. if(isset($field['convert']) && !empty($field['convert'])){
  160. $convert = $field['convert'];
  161. foreach($convert as $origin =>$to){
  162. if(strstr($origin,'date')){
  163. if($to == 'date'){
  164. $val = date('Y-m-d',strtotime($val));
  165. }else if($to == 'datetime'){
  166. $val = date('Y-m-d H:i:s',strtotime($val));
  167. }else if($to == 'int'){
  168. $val = strtotime($val);
  169. }
  170. }else if($origin == 'int'){
  171. if($to == 'date'){
  172. $val = date('Y-m-d',$val);
  173. }else if($to == 'datetime'){
  174. $val = date('Y-m-d H:i:s',$val);
  175. }else if($to == 'int'){
  176. $val = $val;
  177. }
  178. }
  179. }
  180. }
  181. }
  182. $str .= '<td><span title='.$originVal.'>'.$val.'</span></td>';
  183. }
  184. $str .= '</tr>';
  185. }
  186. return $str ;
  187. }
  188. # table 表 标题 1
  189. public function getTableTheadHtml($table_th_bar){
  190. $table_th_bar = $this->getTableTheadArrInit($table_th_bar);
  191. $this->_param['orderField'] = $this->_param['orderField'] ? $this->_param['orderField'] : $this->_paramKey;
  192. $this->_param['orderDirection'] = $this->_param['orderDirection'] ? $this->_param['orderDirection'] : $this->_defaultDirection;
  193. foreach($table_th_bar as $k => $field){
  194. if($field['orderField'] == $this->_param['orderField']){
  195. $table_th_bar[$k]['class'] = $this->_param['orderDirection'];
  196. }
  197. }
  198. $str = '<thead><tr>';
  199. $str .= '<th width="22"><input type="checkbox" group="'.$this->_paramKey.'s" class="checkboxCtrl"></th>';
  200. foreach($table_th_bar as $b){
  201. $width = $b['width'];
  202. $label = $b['label'];
  203. $orderField = $b['orderField'];
  204. $class = isset($b['class']) ? $b['class'] : '';
  205. $align = isset($b['align']) ? 'align="'.$b['align'].'"' : '';
  206. $str .= '<th width="'.$width.'" '.$align.' orderField="'.$orderField.'" class="'.$class.'">'.$label.'</th>';
  207. }
  208. $str .= '</tr></thead>';
  209. return $str;
  210. }
  211. }