diff --git a/app/admin/controller/InvItemController.php b/app/admin/controller/InvItemController.php index b9db3c0..ed8866f 100644 --- a/app/admin/controller/InvItemController.php +++ b/app/admin/controller/InvItemController.php @@ -6,6 +6,7 @@ use app\common\model\Corp; use app\common\model\User; use app\common\traits\crud\CrudControllerTrait; use app\common\service\InvItemService; +use support\Request; class InvItemController extends BaseController { @@ -18,6 +19,21 @@ class InvItemController extends BaseController $this->service = new InvItemService(); } + public function preset(Request $request){ + try { + $res = $this->service->getList(); + $result = []; + foreach ($res as $value) { + $value['company_name'] = Corp::where('id', $value['company_id'])->value('name'); + $value['manage_user_name'] = User::where('id', $value['manage_user_id'])->value('name'); + $result[] = $value; + } + return $this->success($result, '获取物品列表'); + } catch (\Throwable $e) { + return $this->error($e->getMessage()); + } + } + /** * 列表页数据格式化 * diff --git a/app/common/logic/InvItemLogic.php b/app/common/logic/InvItemLogic.php index 364c5c6..48c6ffd 100644 --- a/app/common/logic/InvItemLogic.php +++ b/app/common/logic/InvItemLogic.php @@ -14,4 +14,9 @@ class InvItemLogic */ protected string $modelClass = InvItem::class; + + public function getList() + { + return InvItem::where('status',1)->orderBy('sort','desc')->get(); + } } \ No newline at end of file diff --git a/app/common/service/InvItemService.php b/app/common/service/InvItemService.php index 43a1f44..eb49fb9 100644 --- a/app/common/service/InvItemService.php +++ b/app/common/service/InvItemService.php @@ -2,6 +2,7 @@ namespace app\common\service; +use app\common\logic\InvItemLogic; use app\common\validate\InvItemValidate; use app\common\traits\crud\CrudServiceTrait; use app\common\model\InvItem; @@ -23,6 +24,12 @@ class InvItemService */ protected $validator = InvItemValidate::class; + protected $logic; + + public function __construct() + { + $this->logic = (new InvItemLogic()); + } /** * 获取验证器 */ @@ -31,6 +38,52 @@ class InvItemService return new $this->validator; } + /** + * 构造 CrudUtil 查询配置 + */ + protected function buildQueryConfig(Request $request, string $scene = 'default'): array + { + $p = $request->all(); + + $config = []; + $config['model'] = $this->modelClass; + switch ($scene) { + case 'default': + $config['where']['status'] = 1; + $config['order']['sort'] = 'desc'; + $config['order']['id'] = 'desc'; + break; + case 'index': + $config['where']['status'] = 1; + + // 关键字 + if (isset($p['keyword']) && $p['keyword']) { + $k = '%' . $p['keyword'] . '%'; + foreach (['item_name'] as $col) { + $config['orWhere'][] = [$col, 'like', $k]; + } + } + + $config['order']['sort'] = 'desc'; + $config['order']['id'] = 'desc'; + break; + case 'show': + $config['where']['id'] = $p['id']; + $config['where']['status'] = 1; + break; + case 'store': + break; + case 'update': + $config['where']['id'] = $p['id']; + break; + case 'destroy': + $config['where']['id'] = $p['id']; + break; + } + + return $config; + } + /** * 生成 8-12 位的物品编码(默认10位) * @@ -135,4 +188,12 @@ class InvItemService } return $this->changeStock($itemId, $qty, true); } + + /** + * 获取车型list + */ + public function getList() + { + return $this->logic->getList(); + } } \ No newline at end of file diff --git a/app/mobile/controller/InvItemController.php b/app/mobile/controller/InvItemController.php new file mode 100644 index 0000000..3606afa --- /dev/null +++ b/app/mobile/controller/InvItemController.php @@ -0,0 +1,55 @@ +service = new InvItemService(); + } + + public function preset(Request $request){ + try { + $res = $this->service->getList(); + $result = []; + foreach ($res as $value) { + $value['company_name'] = Corp::where('id', $value['company_id'])->value('name'); + $value['manage_user_name'] = User::where('id', $value['manage_user_id'])->value('name'); + $result[] = $value; + } + return $this->success($result, '获取物品列表'); + } catch (\Throwable $e) { + return $this->error($e->getMessage()); + } + } + + /** + * 列表页数据格式化 + * + * @param array $data + * @return array + */ + protected function indexFormat($data) + { + if (isset($data['created_at'])) + $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']); + if (isset($data['updated_at'])) + $data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']); + if (isset($data['company_id'])) + $data['company_name'] = Corp::where('id', $data['company_id'])->value('name'); + if (isset($data['manage_user_id'])) + $data['manage_user_name'] = User::where('id', $data['manage_user_id'])->value('name'); + return $data; + } +} \ No newline at end of file diff --git a/config/route.php b/config/route.php index a93349d..1b0f178 100644 --- a/config/route.php +++ b/config/route.php @@ -642,8 +642,14 @@ Route::group('/crm', function () { Route::group('/mobile', function () { // 物品领用 Route::group('/inv', function () { + //物品下拉 + Route::any('/item/preset', [app\mobile\controller\InvItemController::class, 'preset']); + + // 物品领用申请 Route::any('/requisition/apply', [app\mobile\controller\InvRequisitionController::class, 'apply']); Route::any('/requisition/update', [app\mobile\controller\InvRequisitionController::class, 'update']); + + // 物品归还 Route::any('/requisition/item/return', [app\mobile\controller\InvRequisitionItemReturnController::class, 'store']); Route::any('/requisition/item/return/update', [app\mobile\controller\InvRequisitionItemReturnController::class, 'update']); Route::any('/requisition/item/return/confirm', [app\mobile\controller\InvRequisitionItemReturnController::class, 'returnConfirm']);