Material.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <?php
  2. /**
  3. * User: nickbai
  4. * Date: 2017/10/23 13:33
  5. * Email: 1902822973@qq.com
  6. */
  7. namespace app\admin\controller;
  8. class Material extends Base
  9. {
  10. // 素材列表
  11. public function index()
  12. {
  13. $div = '<div>';
  14. if(request()->isAjax()){
  15. $param = input('param.');
  16. $limit = $param['pageSize'];
  17. $offset = (($param['pageNumber'] - 1) * $limit);
  18. $where = [];
  19. if (empty($param['searchText']) === false || intval($param['searchText']) == 0) {
  20. if($param['user'] == 'user_account'){
  21. $where['user_account'] = ['like', '%' . $param['searchText'] . '%'];
  22. }
  23. if($param['user'] == 'user_name'){
  24. $where['user_name'] = ['like', '%' . $param['searchText'] . '%'];
  25. }
  26. // $where['user_account|user_name|user_job_number|fullname'] = ['like', '%' . $param['searchText'] . '%'];
  27. }else{
  28. return 1;
  29. }
  30. $result = db('material')->where($where)->limit($offset, $limit)->order('id', 'desc')->select();
  31. foreach($result as $key=>$vo){
  32. // 优化显示头像
  33. $result[$key]['url'] = '<img src="' . $vo['url'] . '" height="40px">';
  34. $div .= $result[$key]['url'];
  35. // 生成操作按钮
  36. $result[$key]['operate'] = $this->makeBtn($vo['id']);
  37. }
  38. // $return['total'] = db('users')->where($where)->count(); //总数据
  39. // $return['rows'] = $result;
  40. // return json($return);
  41. }
  42. //所有素材
  43. $material = db('material')->select();
  44. $allmaterial = '';
  45. if(!empty($material)){
  46. $allmaterial = '<div style="margin-top: 20px;">';
  47. for($i=0;$i<count($material);$i++){
  48. $allmaterial .= '<div style="width: 33.3%;height:150px;float: left;border: 1px solid red;">';
  49. $allmaterial .= '<img src="' . $material[$i]['url'] . '" height="30%">';
  50. $allmaterial .= '</div>';
  51. }
  52. $allmaterial .= '</div>';
  53. }
  54. $this->assign([
  55. 'div' => $div,
  56. 'material' => $material,
  57. 'allmaterial' => $allmaterial
  58. ]);
  59. return $this->fetch();
  60. }
  61. // 添加素材
  62. public function add()
  63. {
  64. if(request()->isPost()){
  65. $param = input('post.');
  66. unset($param['file']); // 删除layui头像上传隐藏字段
  67. // 检测图片
  68. if(empty($param['material'])){
  69. return json(['code' => -1, 'data' => '', 'msg' => '请上传素材']);
  70. }
  71. $info =array();
  72. $info['url'] = $param['material'];
  73. $info['name'] = $param['img_name'];
  74. try{
  75. db('material')->insert($info);
  76. }catch(\Exception $e){
  77. return json(['code' => -5, 'data' => '', 'msg' => $e->getMessage()]);
  78. }
  79. return json(['code' => 1, 'data' => 'material/index', 'msg' => '添加素材成功']);
  80. }
  81. $this->assign([
  82. 'status' => config('kf_status')
  83. ]);
  84. return $this->fetch('add');
  85. }
  86. // 删除素材
  87. public function del()
  88. {
  89. if(request()->isAjax()){
  90. $id = input('param.id/d');
  91. $material = db('material')->where('id',$id)->find();
  92. try{
  93. $name = iconv("UTF-8", "gbk",'./'.$material['url']);
  94. unlink($name);
  95. db('material')->where('id', $id)->delete();
  96. }catch(\Exception $e){
  97. return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
  98. }
  99. return json(['code' => 1, 'data' => url('material/index'), 'msg' => '删除素材成功']);
  100. }
  101. }
  102. // 上传图片
  103. public function upMaterial()
  104. {
  105. if(request()->isAjax()) {
  106. $file = request()->file('file');
  107. if (!empty($file)) {
  108. // 移动到框架应用根目录/public/static/material/ 目录下
  109. $name = $_FILES['file']['name'];
  110. $res = db('material')->where('url','/static/material/'.$name)->find();
  111. if(!empty($res)){
  112. return json(['code' => -1, 'data' => '', 'msg' => '素材已存在']);
  113. }
  114. //中文乱码问题
  115. $name = iconv("UTF-8", "gbk",$name);
  116. $info = $file->move(ROOT_PATH . 'public' . DS . 'static/material/',$savename = $name,$replace = true);
  117. $name = iconv("gbk","UTF-8",$name);
  118. if ($info) {
  119. $src = '/static/material' . '/' . $name;
  120. return json(['code' => 0, 'data' => ['src' => $src,'name' => $name], 'msg' => 'ok']);
  121. } else {
  122. // 上传失败获取错误信息
  123. return json(['code' => -1, 'data' => '', 'msg' => $file->getError()]);
  124. }
  125. }
  126. }
  127. }
  128. // 生成按钮
  129. private function makeBtn($id)
  130. {
  131. // $operate = '<a href="' . url('users/edituser', ['id' => $id]) . '">';
  132. // $operate .= '<button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 编辑</button></a> ';
  133. $operate = '<a href="javascript:resetPwd(' . $id . ')"><button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 重置密码</button></a>';
  134. $operate .= '<a style="margin-left:5px;" href="' . url('users/editUser', ['id' => $id]) . '">';
  135. $operate .= '<button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 编辑</button></a> ';
  136. $operate .= '<a style="margin-left:5px;" href="javascript:userDel(' . $id . ')"><button type="button" class="btn btn-danger btn-sm">';
  137. $operate .= '<i class="fa fa-trash-o"></i> 删除</button></a> ';
  138. //$operate .= '<a href="javascript:;">';
  139. //$operate .= '<button type="button" class="btn btn-info btn-sm"><i class="fa fa-institution"></i> 详情</button></a>';
  140. return $operate;
  141. }
  142. }