PageController.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Models\WxIcon;
  4. use App\Models\WxPage;
  5. use Illuminate\Http\Request;
  6. class PageController extends BaseController{
  7. /** tabs页面模板
  8. * @param Request $request
  9. */
  10. public function tabs(Request $request){
  11. $id = $request->id;
  12. if(_empty_($id)){
  13. return $this->fail(200001);
  14. }
  15. $page = WxPage::find($id);
  16. if(_empty_($page)){
  17. return $this->fail(200003);
  18. }
  19. if(!in_array($page->type, [0, 1])){
  20. return $this->fail(200008);
  21. }
  22. $right = $page->right;
  23. $config = $page->config;
  24. $result = [
  25. 'style' => $page->type,
  26. 'header' => [
  27. 'left' => [],
  28. 'center' => $page->title,
  29. 'right' => []
  30. ],
  31. 'config' => [
  32. ]
  33. ];
  34. if($right){
  35. $right = json_decode($right, true);
  36. if($right){
  37. $result['header']['right'] = WxIcon::find($right[0]);
  38. }
  39. }
  40. $tabs = [];
  41. $tab_pages = [];
  42. if($config){
  43. $config_arr = json_decode($config, true);
  44. $i = 0;
  45. foreach ($config_arr as $tab){
  46. $tabs[] = [
  47. 'title' => $tab['name']
  48. ];
  49. $icon_ids = $tab['tab'];
  50. $tab_pages[$i] = [];
  51. if($icon_ids){
  52. $icon_ids = explode(',', $icon_ids);
  53. foreach ($icon_ids as $icon){
  54. $icon_obj = WxIcon::find($icon);
  55. $tab_pages[$i][] = $icon_obj;
  56. }
  57. }
  58. $i++;
  59. }
  60. }
  61. $result['config']['tabs'] = $tabs;
  62. $result['config']['tab_pages'] = $tab_pages;
  63. return $this->success($result);
  64. }
  65. /** qrcodes页面模板
  66. * @param Request $request
  67. */
  68. public function qrcodes(Request $request){
  69. $id = $request->id;
  70. if(_empty_($id)){
  71. return $this->fail(200001);
  72. }
  73. $page = WxPage::find($id);
  74. if(_empty_($page)){
  75. return $this->fail(200003);
  76. }
  77. if(!in_array($page->type, [3])){
  78. return $this->fail(200008);
  79. }
  80. $right = $page->right;
  81. $config = $page->config;
  82. $result = [
  83. 'style' => $page->type,
  84. 'header' => [
  85. 'left' => [],
  86. 'center' => $page->title,
  87. 'right' => []
  88. ],
  89. 'config' => [
  90. ]
  91. ];
  92. if($right){
  93. $right = json_decode($right, true);
  94. if($right){
  95. $result['header']['right'] = WxIcon::find($right[0]);
  96. }
  97. }
  98. $menus = [];
  99. if($config){
  100. $config = json_decode($config, true);
  101. if($config['tabs']){
  102. if(is_string($config['tabs'])){
  103. $config['tabs'] = json_decode($config['tabs'], true);
  104. }
  105. }else{
  106. $config['tabs'] = [];
  107. }
  108. $result['config'] = $config;
  109. }
  110. return $this->success($result);
  111. }
  112. /** menus页面模板
  113. * @param Request $request
  114. */
  115. public function menus(Request $request){
  116. $id = $request->id;
  117. if(_empty_($id)){
  118. return $this->fail(200001);
  119. }
  120. $page = WxPage::find($id);
  121. if(_empty_($page)){
  122. return $this->fail(200003);
  123. }
  124. if(!in_array($page->type, [2])){
  125. return $this->fail(200008);
  126. }
  127. $right = $page->right;
  128. $config = $page->config;
  129. $result = [
  130. 'style' => $page->type,
  131. 'header' => [
  132. 'left' => [],
  133. 'center' => $page->title,
  134. 'right' => []
  135. ],
  136. 'config' => [
  137. ]
  138. ];
  139. if($right){
  140. $right = json_decode($right, true);
  141. if($right){
  142. $result['header']['right'] = WxIcon::find($right[0]);
  143. }
  144. }
  145. $menus = [];
  146. if($config){
  147. $config_arr = explode(',', $config);
  148. $i = 0;
  149. foreach ($config_arr as $icon_id){
  150. $menus[] = WxIcon::find($icon_id);
  151. $i++;
  152. }
  153. }
  154. $result['config']['menus'] = $menus;
  155. return $this->success($result);
  156. }
  157. }