链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

198 lines
6.7 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Repositories\Store;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Show;
  7. use Dcat\Admin\Controllers\AdminController;
  8. use App\Models\StoreType as StoreTypeModel;
  9. use App\Models\LanzuMmInfo as MminfoModel;
  10. use App\Models\ImsCjdcMarket as MarketModel;
  11. use App\Admin\Common\StoreQRCode;
  12. use App\Admin\Repositories\StoreType;
  13. use App\Models\Store as StoreModel;
  14. use App\Models\ImsCjdcUser as UserModel;
  15. use App\Models\Category as CategoryModel;
  16. class StoreController extends AdminController
  17. {
  18. /**
  19. * Make a grid builder.
  20. *
  21. * @return Grid
  22. */
  23. protected function grid()
  24. {
  25. return Grid::make(new Store(), function (Grid $grid) {
  26. $grid->model()->orderBy('id','desc');
  27. $grid->id->sortable();
  28. $grid->logo_url->image('',50);
  29. $grid->name;
  30. $grid->market_id->display(function ($marketId){
  31. $market = MarketModel::getMarketInfo($marketId,'name');
  32. return empty($market) ? '' : $market->name;
  33. });
  34. $grid->mm_user_id->display(function ($mmUserId){
  35. $mmUser = MminfoModel::getMmInfo($mmUserId,'name');
  36. return empty($mmUser) ? '' : $mmUser->name;
  37. });
  38. $grid->store_applet_img->image('',50);
  39. $grid->cash_code_img->image('',50);
  40. $grid->sort->sortable();
  41. $grid->is_rest->switch();
  42. $grid->is_open->switch();
  43. // 搜索
  44. $grid->filter(function (Grid\Filter $filter) {
  45. $filter->equal('id');
  46. });
  47. // 每页10条
  48. $grid->paginate(10);
  49. });
  50. }
  51. /**
  52. * Make a show builder.
  53. *
  54. * @param mixed $id
  55. *
  56. * @return Show
  57. */
  58. protected function detail($id)
  59. {
  60. return Show::make($id, new Store(), function (Show $show) {
  61. $show->id;
  62. $show->mm_user_id;
  63. $show->market_id;
  64. $show->name;
  65. $show->address;
  66. $show->tel;
  67. $show->announcement;
  68. $show->is_rest;
  69. $show->logo;
  70. $show->details;
  71. $show->coordinates;
  72. $show->business_license;
  73. $show->store_type_id;
  74. $show->is_open;
  75. $show->sort;
  76. $show->user_id;
  77. $show->environment;
  78. $show->expire_time;
  79. $show->zm_img;
  80. $show->fm_img;
  81. $show->link_name;
  82. $show->link_tel;
  83. $show->admin_id;
  84. $show->loudspeaker_imei;
  85. $show->time;
  86. $show->time2;
  87. $show->time3;
  88. $show->time4;
  89. $show->created_at;
  90. $show->updated_at;
  91. });
  92. }
  93. /**
  94. * Make a form builder.
  95. *
  96. * @return Form
  97. */
  98. protected function form()
  99. {
  100. return Form::make(new Store(), function (Form $form) {
  101. // 查询市场经理
  102. $mmList = MminfoModel::getMmInfoArray();
  103. // 查询市场
  104. $marketList = MarketModel::getMarket();
  105. // 查询一级分类
  106. $storeTypeList = CategoryModel::getCategoryArray([['parent_id','=',0]]);
  107. // 用户
  108. $userList = UserModel::getUserArray();
  109. $form->column(6, function (Form $form) use($mmList,$marketList,$storeTypeList){
  110. $form->hidden('id');
  111. $form->select('mm_user_id')->options($mmList);
  112. $form->select('market_id')->required()->options($marketList);
  113. $form->select('store_type_id')->required()->options($storeTypeList);
  114. $form->text('name')->required()->maxLength(50);
  115. $form->image('logo')->required();
  116. $form->mobile('tel');
  117. $form->text('link_name')->required();
  118. $form->mobile('link_tel')->required();
  119. $form->number('sort');
  120. $form->switch('is_rest')
  121. ->customFormat(function ($v) {
  122. return $v == '休息' ? 1 : 0;
  123. })
  124. ->saving(function ($v) {
  125. return $v;
  126. });
  127. $form->switch('is_open')
  128. ->customFormat(function ($v) {
  129. return $v == '开启' ? 1 : 0;
  130. })
  131. ->saving(function ($v) {
  132. return $v;
  133. })->default(1);
  134. $form->text('address');
  135. });
  136. $form->column(6, function (Form $form) {
  137. $form->image('business_license')->required();
  138. $form->image('zm_img')->required();
  139. $form->image('fm_img')->required();
  140. $form->text('admin_id')->required();/*需要优化 一个用户只能绑定一家店铺*/
  141. $form->text('user_id')->required();/*需要优化 一个用户只能绑定一家店铺*/
  142. $form->timeRange('time1','time2','营业时间段一')->required();
  143. $form->timeRange('time3','time4','营业时间段二');
  144. });
  145. $form->column(12, function (Form $form) {
  146. $form->map('lat','lng','地址');
  147. $form->textarea('introduction')->required();
  148. $form->textarea('announcement');
  149. $form->multipleImage('environment');
  150. });
  151. // $form->text('coordinates')->width(4)
  152. // ->placeholder('输入 经纬度,如: 108.281552,22.83731')
  153. // ->help("通过网址 <a href='https://lbs.amap.com/console/show/picker' target='_blank'>https://lbs.amap.com/console/show/picker</a> 获取经纬度");
  154. $form->saved(function (Form $form){
  155. $id = $form->getKey();
  156. // $form->isCreating() &&
  157. if(!empty($id)){
  158. $qrCode = new StoreQRCode();
  159. // 生成小程序码 店铺
  160. $sRes = $qrCode->SetStoreWeChatCode($id);
  161. // 生产小程序码 收银
  162. $pRes = $qrCode->SetPayWeChatCode($id);
  163. // 保存图片
  164. $store = StoreModel::find($id);
  165. $store->store_applet_img = $sRes['status'] ? $sRes['path'] : '';
  166. $store->cash_code_img = $pRes['status'] ? $pRes['path'] : '';;
  167. $store->save();
  168. // 剪裁图片
  169. // $form->image('cash_code_img')->crop(270, 270, [5, 5]);
  170. }
  171. });
  172. $form->disableResetButton();
  173. $form->disableViewCheck();
  174. $form->disableEditingCheck();
  175. $form->disableCreatingCheck();
  176. });
  177. }
  178. }