正在显示
8 个修改的文件
包含
157 行增加
和
36 行删除
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace app\admin\controller; | 3 | namespace app\admin\controller; |
4 | -use app\admin\controller\Index; | 4 | + |
5 | use app\common\controller\Backend; | 5 | use app\common\controller\Backend; |
6 | use think\Db; | 6 | use think\Db; |
7 | -use think\exception\DbException; | ||
8 | -use think\exception\PDOException; | ||
9 | -use think\exception\ValidateException; | ||
10 | 7 | ||
11 | /** | 8 | /** |
12 | * 车辆管理 | 9 | * 车辆管理 |
@@ -26,7 +23,7 @@ class Car extends Backend | @@ -26,7 +23,7 @@ class Car extends Backend | ||
26 | { | 23 | { |
27 | parent::_initialize(); | 24 | parent::_initialize(); |
28 | $this->model = new \app\admin\model\Car; | 25 | $this->model = new \app\admin\model\Car; |
29 | - | 26 | + $this->view->assign("statusList", $this->model->getStatusList()); |
30 | } | 27 | } |
31 | 28 | ||
32 | 29 | ||
@@ -55,19 +52,19 @@ class Car extends Backend | @@ -55,19 +52,19 @@ class Car extends Backend | ||
55 | list($where, $sort, $order, $offset, $limit) = $this->buildparams(); | 52 | list($where, $sort, $order, $offset, $limit) = $this->buildparams(); |
56 | 53 | ||
57 | $list = $this->model | 54 | $list = $this->model |
58 | - ->with(['route','driver','seat']) | 55 | + ->with(['route','seat','driver']) |
59 | ->where($where) | 56 | ->where($where) |
60 | ->order($sort, $order) | 57 | ->order($sort, $order) |
61 | ->paginate($limit); | 58 | ->paginate($limit); |
62 | 59 | ||
63 | foreach ($list as $row) { | 60 | foreach ($list as $row) { |
64 | - $row->visible(['id','car_model','license_plate','colour','reservation_time','start_time','create_time']); | 61 | + $row->visible(['id','car_model','license_plate','seat','colour','driving_license','driver_license','reservation_time','start_time','create_time','status','carmodel_id']); |
65 | $row->visible(['route']); | 62 | $row->visible(['route']); |
66 | $row->getRelation('route')->visible(['name']); | 63 | $row->getRelation('route')->visible(['name']); |
67 | - $row->visible(['driver']); | ||
68 | - $row->getRelation('driver')->visible(['name']); | ||
69 | $row->visible(['seat']); | 64 | $row->visible(['seat']); |
70 | $row->getRelation('seat')->visible(['name']); | 65 | $row->getRelation('seat')->visible(['name']); |
66 | + $row->visible(['driver']); | ||
67 | + $row->getRelation('driver')->visible(['name']); | ||
71 | } | 68 | } |
72 | 69 | ||
73 | $result = array("total" => $list->total(), "rows" => $list->items()); | 70 | $result = array("total" => $list->total(), "rows" => $list->items()); |
@@ -76,7 +73,6 @@ class Car extends Backend | @@ -76,7 +73,6 @@ class Car extends Backend | ||
76 | } | 73 | } |
77 | return $this->view->fetch(); | 74 | return $this->view->fetch(); |
78 | } | 75 | } |
79 | - | ||
80 | /** | 76 | /** |
81 | * 添加 | 77 | * 添加 |
82 | * | 78 | * |
@@ -112,8 +108,7 @@ class Car extends Backend | @@ -112,8 +108,7 @@ class Car extends Backend | ||
112 | // } | 108 | // } |
113 | $route=Db::name("route")->where("id",$params['route_id'])->find(); | 109 | $route=Db::name("route")->where("id",$params['route_id'])->find(); |
114 | $driver=Db::name("driver")->where("id",$params['driver_id'])->find(); | 110 | $driver=Db::name("driver")->where("id",$params['driver_id'])->find(); |
115 | - $result = $this->model->allowField(true)->insertGetId($params); | ||
116 | - | 111 | + $result = $this->model->allowField(true)->save($params); |
117 | $index=new Index(); | 112 | $index=new Index(); |
118 | $data=[ | 113 | $data=[ |
119 | "start_address"=>$route["start_address"], | 114 | "start_address"=>$route["start_address"], |
@@ -169,8 +164,7 @@ class Car extends Backend | @@ -169,8 +164,7 @@ class Car extends Backend | ||
169 | $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate; | 164 | $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate; |
170 | $row->validateFailException()->validate($validate); | 165 | $row->validateFailException()->validate($validate); |
171 | } | 166 | } |
172 | - $result = $row->allowField(true)->insertGetId($params); | ||
173 | - $this->getAccessToken($result); | 167 | + $result = $row->allowField(true)->save($params); |
174 | Db::commit(); | 168 | Db::commit(); |
175 | } catch (ValidateException|PDOException|Exception $e) { | 169 | } catch (ValidateException|PDOException|Exception $e) { |
176 | Db::rollback(); | 170 | Db::rollback(); |
@@ -182,5 +176,4 @@ class Car extends Backend | @@ -182,5 +176,4 @@ class Car extends Backend | ||
182 | $this->success(); | 176 | $this->success(); |
183 | } | 177 | } |
184 | 178 | ||
185 | - | ||
186 | } | 179 | } |
@@ -153,7 +153,7 @@ class Index extends Backend | @@ -153,7 +153,7 @@ class Index extends Backend | ||
153 | $response = Response::create()->header("Content-Type", $mimetype); | 153 | $response = Response::create()->header("Content-Type", $mimetype); |
154 | // 写入到文件 | 154 | // 写入到文件 |
155 | if ($config['writefile']) { | 155 | if ($config['writefile']) { |
156 | - $qrcodePath = ROOT_PATH . 'public/uploads/store_qrcode/'; | 156 | + $qrcodePath = ROOT_PATH . 'public/uploads/'; |
157 | if (!is_dir($qrcodePath)) { | 157 | if (!is_dir($qrcodePath)) { |
158 | @mkdir($qrcodePath); | 158 | @mkdir($qrcodePath); |
159 | } | 159 | } |
@@ -8,11 +8,19 @@ return [ | @@ -8,11 +8,19 @@ return [ | ||
8 | 'Driver_id' => '司机', | 8 | 'Driver_id' => '司机', |
9 | 'Seat' => '座位数', | 9 | 'Seat' => '座位数', |
10 | 'Colour' => '车辆颜色', | 10 | 'Colour' => '车辆颜色', |
11 | - 'Seat_id' => '座位价格', | 11 | + 'Driving_license' => '行驶证', |
12 | + 'Driver_license' => '驾照', | ||
13 | + 'Seat_id' => '座位id', | ||
12 | 'Reservation_time' => '预约时间', | 14 | 'Reservation_time' => '预约时间', |
13 | 'Start_time' => '发车时间', | 15 | 'Start_time' => '发车时间', |
14 | 'Create_time' => '创建时间', | 16 | 'Create_time' => '创建时间', |
17 | + 'Status' => '车辆认证', | ||
18 | + 'Status 1' => '已审核', | ||
19 | + 'Set status to 1' => '设为已审核', | ||
20 | + 'Status 2' => '未审核', | ||
21 | + 'Set status to 2' => '设为未审核', | ||
22 | + 'Carmodel_id' => '车型', | ||
15 | 'Route.name' => '线路名称', | 23 | 'Route.name' => '线路名称', |
16 | - 'Driver.name' => '司机名称', | ||
17 | - 'Seat.name' => '座位名称' | 24 | + 'Seat.name' => '座位名称', |
25 | + 'Driver.name' => '司机名称' | ||
18 | ]; | 26 | ]; |
@@ -27,12 +27,16 @@ class Car extends Model | @@ -27,12 +27,16 @@ class Car extends Model | ||
27 | protected $append = [ | 27 | protected $append = [ |
28 | 'reservation_time_text', | 28 | 'reservation_time_text', |
29 | 'start_time_text', | 29 | 'start_time_text', |
30 | - 'create_time_text' | 30 | + 'create_time_text', |
31 | + 'status_text' | ||
31 | ]; | 32 | ]; |
32 | 33 | ||
33 | 34 | ||
34 | 35 | ||
35 | - | 36 | + public function getStatusList() |
37 | + { | ||
38 | + return ['1' => __('Status 1'), '2' => __('Status 2')]; | ||
39 | + } | ||
36 | 40 | ||
37 | 41 | ||
38 | public function getReservationTimeTextAttr($value, $data) | 42 | public function getReservationTimeTextAttr($value, $data) |
@@ -55,6 +59,14 @@ class Car extends Model | @@ -55,6 +59,14 @@ class Car extends Model | ||
55 | return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; | 59 | return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; |
56 | } | 60 | } |
57 | 61 | ||
62 | + | ||
63 | + public function getStatusTextAttr($value, $data) | ||
64 | + { | ||
65 | + $value = $value ? $value : (isset($data['status']) ? $data['status'] : ''); | ||
66 | + $list = $this->getStatusList(); | ||
67 | + return isset($list[$value]) ? $list[$value] : ''; | ||
68 | + } | ||
69 | + | ||
58 | protected function setReservationTimeAttr($value) | 70 | protected function setReservationTimeAttr($value) |
59 | { | 71 | { |
60 | return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); | 72 | return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); |
@@ -77,14 +89,14 @@ class Car extends Model | @@ -77,14 +89,14 @@ class Car extends Model | ||
77 | } | 89 | } |
78 | 90 | ||
79 | 91 | ||
80 | - public function driver() | 92 | + public function seat() |
81 | { | 93 | { |
82 | - return $this->belongsTo('Driver', 'driver_id', 'id', [], 'LEFT')->setEagerlyType(0); | 94 | + return $this->belongsTo('Seat', 'seat_id', 'id', [], 'LEFT')->setEagerlyType(0); |
83 | } | 95 | } |
84 | 96 | ||
85 | 97 | ||
86 | - public function seat() | 98 | + public function driver() |
87 | { | 99 | { |
88 | - return $this->belongsTo('Seat', 'seat_id', 'id', [], 'LEFT')->setEagerlyType(0); | 100 | + return $this->belongsTo('Driver', 'driver_id', 'id', [], 'LEFT')->setEagerlyType(0); |
89 | } | 101 | } |
90 | } | 102 | } |
@@ -37,6 +37,34 @@ | @@ -37,6 +37,34 @@ | ||
37 | </div> | 37 | </div> |
38 | </div> | 38 | </div> |
39 | <div class="form-group"> | 39 | <div class="form-group"> |
40 | + <label class="control-label col-xs-12 col-sm-2">{:__('Driving_license')}:</label> | ||
41 | + <div class="col-xs-12 col-sm-8"> | ||
42 | + <div class="input-group"> | ||
43 | + <input id="c-driving_license" class="form-control" size="50" name="row[driving_license]" type="text"> | ||
44 | + <div class="input-group-addon no-border no-padding"> | ||
45 | + <span><button type="button" id="faupload-driving_license" class="btn btn-danger faupload" data-input-id="c-driving_license" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-driving_license"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> | ||
46 | + <span><button type="button" id="fachoose-driving_license" class="btn btn-primary fachoose" data-input-id="c-driving_license" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> | ||
47 | + </div> | ||
48 | + <span class="msg-box n-right" for="c-driving_license"></span> | ||
49 | + </div> | ||
50 | + <ul class="row list-inline faupload-preview" id="p-driving_license"></ul> | ||
51 | + </div> | ||
52 | + </div> | ||
53 | + <div class="form-group"> | ||
54 | + <label class="control-label col-xs-12 col-sm-2">{:__('Driver_license')}:</label> | ||
55 | + <div class="col-xs-12 col-sm-8"> | ||
56 | + <div class="input-group"> | ||
57 | + <input id="c-driver_license" class="form-control" size="50" name="row[driver_license]" type="text"> | ||
58 | + <div class="input-group-addon no-border no-padding"> | ||
59 | + <span><button type="button" id="faupload-driver_license" class="btn btn-danger faupload" data-input-id="c-driver_license" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-driver_license"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> | ||
60 | + <span><button type="button" id="fachoose-driver_license" class="btn btn-primary fachoose" data-input-id="c-driver_license" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> | ||
61 | + </div> | ||
62 | + <span class="msg-box n-right" for="c-driver_license"></span> | ||
63 | + </div> | ||
64 | + <ul class="row list-inline faupload-preview" id="p-driver_license"></ul> | ||
65 | + </div> | ||
66 | + </div> | ||
67 | + <div class="form-group"> | ||
40 | <label class="control-label col-xs-12 col-sm-2">{:__('Seat_id')}:</label> | 68 | <label class="control-label col-xs-12 col-sm-2">{:__('Seat_id')}:</label> |
41 | <div class="col-xs-12 col-sm-8"> | 69 | <div class="col-xs-12 col-sm-8"> |
42 | <input id="c-seat_id" data-rule="required" data-source="seat/index" class="form-control selectpage" name="row[seat_id]" type="text" value=""> | 70 | <input id="c-seat_id" data-rule="required" data-source="seat/index" class="form-control selectpage" name="row[seat_id]" type="text" value=""> |
@@ -45,13 +73,13 @@ | @@ -45,13 +73,13 @@ | ||
45 | <div class="form-group"> | 73 | <div class="form-group"> |
46 | <label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label> | 74 | <label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label> |
47 | <div class="col-xs-12 col-sm-8"> | 75 | <div class="col-xs-12 col-sm-8"> |
48 | - <input id="c-reservation_time" class="form-control datetimepicker" data-date-format="HH:mm" data-use-current="true" name="row[reservation_time]" type="text" value="{:date('Y-m-d H:i:s')}"> | 76 | + <input id="c-reservation_time" class="form-control datetimepicker" data-date-format=" HH:mm" data-use-current="true" name="row[reservation_time]" type="text" value="{:date('Y-m-d H:i:s')}"> |
49 | </div> | 77 | </div> |
50 | </div> | 78 | </div> |
51 | <div class="form-group"> | 79 | <div class="form-group"> |
52 | <label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label> | 80 | <label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label> |
53 | <div class="col-xs-12 col-sm-8"> | 81 | <div class="col-xs-12 col-sm-8"> |
54 | - <input id="c-start_time" class="form-control datetimepicker" data-date-format="HH:mm" data-use-current="true" name="row[start_time]" type="text" value="{:date('Y-m-d H:i:s')}"> | 82 | + <input id="c-start_time" class="form-control datetimepicker" data-date-format=" HH:mm" data-use-current="true" name="row[start_time]" type="text" value="{:date('Y-m-d H:i:s')}"> |
55 | </div> | 83 | </div> |
56 | </div> | 84 | </div> |
57 | <div class="form-group"> | 85 | <div class="form-group"> |
@@ -60,6 +88,24 @@ | @@ -60,6 +88,24 @@ | ||
60 | <input id="c-create_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[create_time]" type="text" value="{:date('Y-m-d H:i:s')}"> | 88 | <input id="c-create_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[create_time]" type="text" value="{:date('Y-m-d H:i:s')}"> |
61 | </div> | 89 | </div> |
62 | </div> | 90 | </div> |
91 | + <div class="form-group"> | ||
92 | + <label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label> | ||
93 | + <div class="col-xs-12 col-sm-8"> | ||
94 | + | ||
95 | + <div class="radio"> | ||
96 | + {foreach name="statusList" item="vo"} | ||
97 | + <label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="1"}checked{/in} /> {$vo}</label> | ||
98 | + {/foreach} | ||
99 | + </div> | ||
100 | + | ||
101 | + </div> | ||
102 | + </div> | ||
103 | + <div class="form-group"> | ||
104 | + <label class="control-label col-xs-12 col-sm-2">{:__('Carmodel_id')}:</label> | ||
105 | + <div class="col-xs-12 col-sm-8"> | ||
106 | + <input id="c-carmodel_id" data-rule="required" data-source="carmodel/index" class="form-control selectpage" name="row[carmodel_id]" type="text" value=""> | ||
107 | + </div> | ||
108 | + </div> | ||
63 | <div class="form-group layer-footer"> | 109 | <div class="form-group layer-footer"> |
64 | <label class="control-label col-xs-12 col-sm-2"></label> | 110 | <label class="control-label col-xs-12 col-sm-2"></label> |
65 | <div class="col-xs-12 col-sm-8"> | 111 | <div class="col-xs-12 col-sm-8"> |
@@ -37,6 +37,34 @@ | @@ -37,6 +37,34 @@ | ||
37 | </div> | 37 | </div> |
38 | </div> | 38 | </div> |
39 | <div class="form-group"> | 39 | <div class="form-group"> |
40 | + <label class="control-label col-xs-12 col-sm-2">{:__('Driving_license')}:</label> | ||
41 | + <div class="col-xs-12 col-sm-8"> | ||
42 | + <div class="input-group"> | ||
43 | + <input id="c-driving_license" class="form-control" size="50" name="row[driving_license]" type="text" value="{$row.driving_license|htmlentities}"> | ||
44 | + <div class="input-group-addon no-border no-padding"> | ||
45 | + <span><button type="button" id="faupload-driving_license" class="btn btn-danger faupload" data-input-id="c-driving_license" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-driving_license"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> | ||
46 | + <span><button type="button" id="fachoose-driving_license" class="btn btn-primary fachoose" data-input-id="c-driving_license" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> | ||
47 | + </div> | ||
48 | + <span class="msg-box n-right" for="c-driving_license"></span> | ||
49 | + </div> | ||
50 | + <ul class="row list-inline faupload-preview" id="p-driving_license"></ul> | ||
51 | + </div> | ||
52 | + </div> | ||
53 | + <div class="form-group"> | ||
54 | + <label class="control-label col-xs-12 col-sm-2">{:__('Driver_license')}:</label> | ||
55 | + <div class="col-xs-12 col-sm-8"> | ||
56 | + <div class="input-group"> | ||
57 | + <input id="c-driver_license" class="form-control" size="50" name="row[driver_license]" type="text" value="{$row.driver_license|htmlentities}"> | ||
58 | + <div class="input-group-addon no-border no-padding"> | ||
59 | + <span><button type="button" id="faupload-driver_license" class="btn btn-danger faupload" data-input-id="c-driver_license" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-driver_license"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> | ||
60 | + <span><button type="button" id="fachoose-driver_license" class="btn btn-primary fachoose" data-input-id="c-driver_license" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> | ||
61 | + </div> | ||
62 | + <span class="msg-box n-right" for="c-driver_license"></span> | ||
63 | + </div> | ||
64 | + <ul class="row list-inline faupload-preview" id="p-driver_license"></ul> | ||
65 | + </div> | ||
66 | + </div> | ||
67 | + <div class="form-group"> | ||
40 | <label class="control-label col-xs-12 col-sm-2">{:__('Seat_id')}:</label> | 68 | <label class="control-label col-xs-12 col-sm-2">{:__('Seat_id')}:</label> |
41 | <div class="col-xs-12 col-sm-8"> | 69 | <div class="col-xs-12 col-sm-8"> |
42 | <input id="c-seat_id" data-rule="required" data-source="seat/index" class="form-control selectpage" name="row[seat_id]" type="text" value="{$row.seat_id|htmlentities}"> | 70 | <input id="c-seat_id" data-rule="required" data-source="seat/index" class="form-control selectpage" name="row[seat_id]" type="text" value="{$row.seat_id|htmlentities}"> |
@@ -45,13 +73,13 @@ | @@ -45,13 +73,13 @@ | ||
45 | <div class="form-group"> | 73 | <div class="form-group"> |
46 | <label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label> | 74 | <label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label> |
47 | <div class="col-xs-12 col-sm-8"> | 75 | <div class="col-xs-12 col-sm-8"> |
48 | - <input id="c-reservation_time" class="form-control datetimepicker" data-date-format="HH:mm" data-use-current="true" name="row[reservation_time]" type="text" value="{:$row.reservation_time?datetime($row.reservation_time):''}"> | 76 | + <input id="c-reservation_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[reservation_time]" type="text" value="{:$row.reservation_time?datetime($row.reservation_time):''}"> |
49 | </div> | 77 | </div> |
50 | </div> | 78 | </div> |
51 | <div class="form-group"> | 79 | <div class="form-group"> |
52 | <label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label> | 80 | <label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label> |
53 | <div class="col-xs-12 col-sm-8"> | 81 | <div class="col-xs-12 col-sm-8"> |
54 | - <input id="c-start_time" class="form-control datetimepicker" data-date-format="HH:mm" data-use-current="true" name="row[start_time]" type="text" value="{:$row.start_time?datetime($row.start_time):''}"> | 82 | + <input id="c-start_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[start_time]" type="text" value="{:$row.start_time?datetime($row.start_time):''}"> |
55 | </div> | 83 | </div> |
56 | </div> | 84 | </div> |
57 | <div class="form-group"> | 85 | <div class="form-group"> |
@@ -60,6 +88,24 @@ | @@ -60,6 +88,24 @@ | ||
60 | <input id="c-create_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[create_time]" type="text" value="{:$row.create_time?datetime($row.create_time):''}"> | 88 | <input id="c-create_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[create_time]" type="text" value="{:$row.create_time?datetime($row.create_time):''}"> |
61 | </div> | 89 | </div> |
62 | </div> | 90 | </div> |
91 | + <div class="form-group"> | ||
92 | + <label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label> | ||
93 | + <div class="col-xs-12 col-sm-8"> | ||
94 | + | ||
95 | + <div class="radio"> | ||
96 | + {foreach name="statusList" item="vo"} | ||
97 | + <label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label> | ||
98 | + {/foreach} | ||
99 | + </div> | ||
100 | + | ||
101 | + </div> | ||
102 | + </div> | ||
103 | + <div class="form-group"> | ||
104 | + <label class="control-label col-xs-12 col-sm-2">{:__('Carmodel_id')}:</label> | ||
105 | + <div class="col-xs-12 col-sm-8"> | ||
106 | + <input id="c-carmodel_id" data-rule="required" data-source="carmodel/index" class="form-control selectpage" name="row[carmodel_id]" type="text" value="{$row.carmodel_id|htmlentities}"> | ||
107 | + </div> | ||
108 | + </div> | ||
63 | <div class="form-group layer-footer"> | 109 | <div class="form-group layer-footer"> |
64 | <label class="control-label col-xs-12 col-sm-2"></label> | 110 | <label class="control-label col-xs-12 col-sm-2"></label> |
65 | <div class="col-xs-12 col-sm-8"> | 111 | <div class="col-xs-12 col-sm-8"> |
1 | <div class="panel panel-default panel-intro"> | 1 | <div class="panel panel-default panel-intro"> |
2 | - {:build_heading()} | 2 | + |
3 | + <div class="panel-heading"> | ||
4 | + {:build_heading(null,FALSE)} | ||
5 | + <ul class="nav nav-tabs" data-field="status"> | ||
6 | + <li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li> | ||
7 | + {foreach name="statusList" item="vo"} | ||
8 | + <li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li> | ||
9 | + {/foreach} | ||
10 | + </ul> | ||
11 | + </div> | ||
12 | + | ||
3 | 13 | ||
4 | <div class="panel-body"> | 14 | <div class="panel-body"> |
5 | <div id="myTabContent" class="tab-content"> | 15 | <div id="myTabContent" class="tab-content"> |
@@ -12,7 +22,14 @@ | @@ -12,7 +22,14 @@ | ||
12 | <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('car/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a> | 22 | <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('car/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a> |
13 | 23 | ||
14 | 24 | ||
15 | - | 25 | + <div class="dropdown btn-group {:$auth->check('car/multi')?'':'hide'}"> |
26 | + <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a> | ||
27 | + <ul class="dropdown-menu text-left" role="menu"> | ||
28 | + {foreach name="statusList" item="vo"} | ||
29 | + <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li> | ||
30 | + {/foreach} | ||
31 | + </ul> | ||
32 | + </div> | ||
16 | 33 | ||
17 | 34 | ||
18 | </div> | 35 | </div> |
@@ -31,13 +31,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin | @@ -31,13 +31,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin | ||
31 | {field: 'car_model', title: __('Car_model'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 31 | {field: 'car_model', title: __('Car_model'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
32 | {field: 'license_plate', title: __('License_plate'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 32 | {field: 'license_plate', title: __('License_plate'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
33 | {field: 'colour', title: __('Colour'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 33 | {field: 'colour', title: __('Colour'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
34 | - {field: 'route.name', title: __('Route.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
35 | - {field: 'driver.name', title: __('Driver.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
36 | - {field: 'seat.name', title: __('Seat.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
37 | {field: 'reservation_time', title: __('Reservation_time'), datetimeFormat:"HH:mm",operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, | 34 | {field: 'reservation_time', title: __('Reservation_time'), datetimeFormat:"HH:mm",operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, |
38 | {field: 'start_time', title: __('Start_time'), datetimeFormat:"HH:mm", operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, | 35 | {field: 'start_time', title: __('Start_time'), datetimeFormat:"HH:mm", operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, |
39 | - {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, | ||
40 | - | 36 | + {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime}, |
37 | + {field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2')}, formatter: Table.api.formatter.status}, | ||
38 | + {field: 'route.name', title: __('Route.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
39 | + {field: 'driver.name', title: __('Driver.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
41 | {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} | 40 | {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} |
42 | ] | 41 | ] |
43 | ] | 42 | ] |
-
请 注册 或 登录 后发表评论