فهرست منبع

租赁列表三级联动

whj 4 سال پیش
والد
کامیت
0ba9a60586

+ 14 - 1
app/Helper/functions.inc.php

xqd
@@ -732,4 +732,17 @@ if( ! function_exists('widget'))
 //        }
 //        return false;
 //    }
-//}
+//}
+
+if( ! function_exists('object_to_array'))
+{
+     function object_to_array($obj){
+        $_arr=is_object($obj)?get_object_vars($obj):$obj;
+        $arr = null;
+        foreach($_arr as $key=>$val){
+            $val=(is_array($val))||is_object($val)?$this->object_to_array($val):$val;
+            $arr[$key]=$val;
+        }
+        return $arr;
+    }
+}

+ 10 - 1
app/Http/Controllers/Admin/OrderDeviceController.php

xqd xqd
@@ -69,10 +69,18 @@ class OrderDeviceController extends BaseController
 
         if($request->input('type') == 'rent') {
             $items = $items->whereNull('inner_device_id');
+
+            if($request->input('work_point_id')){
+                $items->whereHas('order',function ($query){
+                    $query->where('work_point_id','=',request('work_point_id'));
+                });
+            }
+
         } else if($request->input('type') == 'apply') {
             $items = $items->whereNotNull('inner_device_id');
         }
 
+        $items = $items->with('order');
         $tmp_items = collect(['name']);
         foreach($tmp_items as $tmp_item) {
             if($request->has($tmp_item) && !empty($request->input($tmp_item))) {
@@ -80,13 +88,14 @@ class OrderDeviceController extends BaseController
             }
         }
 
-        $select_items = collect(['inner_device_id', 'work_point_id']);
+        $select_items = collect(['inner_device_id','device_id','device_name_id','spec_id']);
         foreach($select_items as $select_item) {
             if($request->has($select_item) && !empty($request->input($select_item))) {
                 $items = $items->where($select_item, '=', $request->input($select_item));
             }
         }
 
+
         if ($request->input('order_id'))
         {
             $items->where('order_id','like','%'.$request->input('order_id').'%');

+ 21 - 2
app/Http/Controllers/Api/mini/InnerDeviceController.php

xqd xqd xqd xqd
@@ -3,6 +3,7 @@
 namespace App\Http\Controllers\Api\mini;
 
 use App\Models\InnerDevice;
+use App\Models\InnerDeviceNamesModel;
 use App\Models\Option;
 use App\Models\WorkPoint;
 use Illuminate\Http\Request;
@@ -43,7 +44,7 @@ class InnerDeviceController extends BaseController
     public function search(Request $request)
     {
         $items = $this->model->with('workPoint', 'spec', 'device', 'project');
-        $equal_items = ['device_id', 'device_name_id', 'spec_id'];
+        $equal_items = [ 'device_name_id', 'spec_name'];
         foreach ($equal_items as $item) {
             if($request->input($item)) {
                 $items = $items->where($item, '=', $request->input($item));
@@ -53,7 +54,11 @@ class InnerDeviceController extends BaseController
         foreach ($like_items as $item) {
             if($request->input($item)) {
                 $keyword = '%' . $request->input($item) . '%';
-                $items = $items->where($item, 'like', $keyword);
+//                $items = $items->where($item, 'like', $keyword);
+                $items->where(function ($query) use ($keyword) {
+                    $query->where('number', 'like', $keyword)
+                        ->orWhere('spec_name', 'like', $keyword);
+                });
             }
         }
         $in_items = ['project_ids', 'work_point_ids'];
@@ -108,4 +113,18 @@ class InnerDeviceController extends BaseController
         $item['status'] = Option::find($item['status']);
         return $this->success(['data' => $item]);
     }
+
+    //设备三级联动
+    public function getDeviceName(Request $request)
+    {
+        $items = InnerDeviceNamesModel::select( 'name as text','id as value')->get();
+        $items = $items->prepend($this->transObject(['text' => '设备名称', 'value' => '']));
+
+        return $this->success(['data' => $items]);
+    }
+
+    public function transObject($items)
+    {
+        return json_decode(json_encode($items));
+    }
 }

+ 6 - 2
app/Http/Controllers/Api/mini/OrderController.php

xqd xqd xqd xqd
@@ -111,7 +111,6 @@ class OrderController extends BaseController
         $option = Option::get('orders', 'status', 'checking');
 
         $order = Order::create([
-            'work_point_id' => $request->input('work_point_id'),
             'remark' => $request->input('remark'),
             'is_draft' => $request->input('is_draft'),
             'status' => $option,
@@ -140,7 +139,6 @@ class OrderController extends BaseController
                     'status' => $using_id,
                     'start_date' => $device['start_date'],
                     'end_date' => $device['end_date'],
-                    'work_point_id' => $request->input('work_point_id')
                 ]);
             }
         }
@@ -258,7 +256,12 @@ class OrderController extends BaseController
                 $search_items['user_id'] = $user->id;
             }
         }
+        $statu = $request->input('status');
         if($request->input('status')) {
+//            if($statu == 'reject'){
+//                unset($search_items[1]);
+//                $search_items[] = ['last_project_role_id',$level];
+//            }
             $status = Option::get('orders', 'status', $request->input('status'));
             if($status) {
                 array_push($search_items, ['status', '=', $status]);
@@ -361,6 +364,7 @@ class OrderController extends BaseController
             $order->updateOrderDevices($request->input('devices'));
         } else if($request->input('type') == 'reject') {
             $next_project_role = ProjectRole::getFirstRole($order);
+            $next_project_role['level'] =$project_role->level;
         } else if($request->input('type') == 'back') {
             $new_order = $order->backInnerDevices($request->input('devices'));
             // 没有返回新订单,是全部归还

+ 1 - 0
app/Models/Order.php

xqd
@@ -98,6 +98,7 @@ class Order extends BaseModel
         } else if($item->type == 2) {
             $item->devices = $item->innerDevices;
         }
+        $item->project_name = Project::where('id',$item->project_id)->value('name');
         $item->user_name = $item->user ? $item->user->name : '';
         $item->work_point_name = $item->workPoint ? $item->workPoint->name : '';
 

+ 10 - 7
resources/views/admin/order-devices/rent-list.blade.php

xqd
@@ -14,16 +14,19 @@
         <div class="layui-card-body">
             <form class="layui-form" id="sg-search-form">
                 <input type="hidden" name="type" value="rent">
-                <div class="layui-form-item layui-row">
+                <div class="layui-form-item">
+                    <div class="layui-inline" style="display: flex;align-items: center">
+                        @include('share.device-select-form', ['device_id' => '', 'device_name_id' => '', 'spec_id' => '', 'options' => $options])
+                    </div>
 
-                    @include('share.device-select-form', ['device_id' => '', 'device_name_id' => '', 'spec_id' => '', 'options' => $options, 'hide_spec' => true])
-                    @include('share.project-work-point-select-form', ['project_id' => '', 'work_point_id' => '', 'options' => $project_work_point_options])
-                </div>
+                    <div class="layui-inline" style="display: flex;align-items: center">
+                        @include('share.project-work-point-select-form', ['project_id' => '', 'work_point_id' => '', 'options' => $project_work_point_options])
+                        <div class="layui-inline " style="margin-left: 20px;margin-bottom: 15px">
+                            <div class="layui-btn" id="sg-search-btn">搜索</div>
+                        </div>
 
-                <div class="layui-form-item layui-row">
-                    <div class="layui-inline">
-                        <div class="layui-btn" id="sg-search-btn">搜索</div>
                     </div>
+
                 </div>
 
 

+ 3 - 1
routes/api.php

xqd xqd
@@ -26,7 +26,8 @@ $api->version('v1', ['namespace' => 'App\Http\Controllers\Api\mini', 'prefix' =>
     $api->any('projects/create', 'ProjectController@create');
     $api->any('projects/get', 'ProjectController@get');
     $api->any('projects/getAll', 'ProjectController@getAll');
-    $api->any('projects/addUser', 'ProjectController@addUser');
+    $api->any('projects/getAll', 'ProjectController@getAll');
+    $api->any('projects/getProject', 'ProjectController@getProject');
     $api->any('projects/detail', 'ProjectController@detail');
     $api->any('projects/getUsers', 'ProjectController@getUsers');
     $api->any('projects/deleteUser', 'ProjectController@deleteUser');
@@ -49,6 +50,7 @@ $api->version('v1', ['namespace' => 'App\Http\Controllers\Api\mini', 'prefix' =>
     $api->any('devices/getThreeLevel', 'DeviceController@getThreeLevel');
 
     $api->any('inner-devices/get', 'InnerDeviceController@get');
+    $api->any('inner-devices/getDeviceName', 'InnerDeviceController@getDeviceName');
     $api->any('inner-devices/search', 'InnerDeviceController@search');
     $api->any('inner-devices/search2', 'InnerDeviceController@search2');
     $api->any('inner-devices/detail', 'InnerDeviceController@detail');