正在显示
21 个修改的文件
包含
448 行增加
和
73 行删除
application/admin/controller/Chartercar.php
0 → 100644
1 | +<?php | ||
2 | + | ||
3 | +namespace app\admin\controller; | ||
4 | + | ||
5 | +use app\common\controller\Backend; | ||
6 | + | ||
7 | +/** | ||
8 | + * 包车管理 | ||
9 | + * | ||
10 | + * @icon fa fa-circle-o | ||
11 | + */ | ||
12 | +class Chartercar extends Backend | ||
13 | +{ | ||
14 | + | ||
15 | + /** | ||
16 | + * Chartercar模型对象 | ||
17 | + * @var \app\admin\model\Chartercar | ||
18 | + */ | ||
19 | + protected $model = null; | ||
20 | + | ||
21 | + public function _initialize() | ||
22 | + { | ||
23 | + parent::_initialize(); | ||
24 | + $this->model = new \app\admin\model\Chartercar; | ||
25 | + $specofocaddress_id = $this->request->param("specofocaddress_id"); | ||
26 | + $this->view->assign("specofocaddress_id", $specofocaddress_id); | ||
27 | + } | ||
28 | + | ||
29 | + | ||
30 | + | ||
31 | + /** | ||
32 | + * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 | ||
33 | + * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 | ||
34 | + * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 | ||
35 | + */ | ||
36 | + | ||
37 | + | ||
38 | + /** | ||
39 | + * 查看 | ||
40 | + */ | ||
41 | + public function index() | ||
42 | + { | ||
43 | + //当前是否为关联查询 | ||
44 | + $this->relationSearch = true; | ||
45 | + //设置过滤方法 | ||
46 | + $this->request->filter(['strip_tags', 'trim']); | ||
47 | + if ($this->request->isAjax()) { | ||
48 | + //如果发送的来源是Selectpage,则转发到Selectpage | ||
49 | + if ($this->request->request('keyField')) { | ||
50 | + return $this->selectpage(); | ||
51 | + } | ||
52 | + list($where, $sort, $order, $offset, $limit) = $this->buildparams(); | ||
53 | + | ||
54 | + $list = $this->model | ||
55 | + ->with(['specificaddress','carmodel']) | ||
56 | + ->where($where) | ||
57 | + ->order($sort, $order) | ||
58 | + ->paginate($limit); | ||
59 | + | ||
60 | + foreach ($list as $row) { | ||
61 | + $row->visible(['id','specificaddress_id','price','create_time']); | ||
62 | + $row->visible(['specificaddress']); | ||
63 | + $row->getRelation('specificaddress')->visible(['specific_address']); | ||
64 | + $row->visible(['carmodel']); | ||
65 | + $row->getRelation('carmodel')->visible(['name']); | ||
66 | + } | ||
67 | + | ||
68 | + $result = array("total" => $list->total(), "rows" => $list->items()); | ||
69 | + | ||
70 | + return json($result); | ||
71 | + } | ||
72 | + return $this->view->fetch(); | ||
73 | + } | ||
74 | + | ||
75 | +} |
@@ -51,20 +51,11 @@ class Seat extends Backend | @@ -51,20 +51,11 @@ class Seat extends Backend | ||
51 | $params['seat_name'] = array_filter($params['seat_name'], function($value) { | 51 | $params['seat_name'] = array_filter($params['seat_name'], function($value) { |
52 | return !is_null($value) && $value !== ''; | 52 | return !is_null($value) && $value !== ''; |
53 | }); | 53 | }); |
54 | - $params['seat_price'] = array_filter($params['seat_price'], function($value) { | ||
55 | - return !is_null($value) && $value !== ''; | ||
56 | - }); | ||
57 | - | ||
58 | - if(count($params['seat_name'])!=count($params['seat_price'])){ | ||
59 | - $this->error("请填写完成"); | ||
60 | - | ||
61 | - } | ||
62 | $params['seat']=[]; | 54 | $params['seat']=[]; |
63 | foreach ($params['seat_name'] as $k=>$v){ | 55 | foreach ($params['seat_name'] as $k=>$v){ |
64 | - $params['seat'][$k]=["seat_no"=>$params['seat_no'][$k],"seat_name"=>$params['seat_name'][$k],"seat_price"=>$params['seat_price'][$k]]; | 56 | + $params['seat'][$k]=["seat_no"=>$params['seat_no'][$k],"seat_name"=>$params['seat_name'][$k]]; |
65 | } | 57 | } |
66 | unset($params['seat_no']); | 58 | unset($params['seat_no']); |
67 | - unset($params['seat_price']); | ||
68 | unset($params['seat_name']); | 59 | unset($params['seat_name']); |
69 | $params["seat"]=json_encode($params["seat"]); | 60 | $params["seat"]=json_encode($params["seat"]); |
70 | if (empty($params)) { | 61 | if (empty($params)) { |
@@ -122,7 +113,6 @@ class Seat extends Backend | @@ -122,7 +113,6 @@ class Seat extends Backend | ||
122 | return $this->view->fetch(); | 113 | return $this->view->fetch(); |
123 | } | 114 | } |
124 | $params = $this->request->post('row/a'); | 115 | $params = $this->request->post('row/a'); |
125 | - print_r($params);return; | ||
126 | if (empty($params)) { | 116 | if (empty($params)) { |
127 | $this->error(__('Parameter %s can not be empty', '')); | 117 | $this->error(__('Parameter %s can not be empty', '')); |
128 | } | 118 | } |
@@ -66,7 +66,7 @@ class Specificaddress extends Backend | @@ -66,7 +66,7 @@ class Specificaddress extends Backend | ||
66 | ->order($sort, $order) | 66 | ->order($sort, $order) |
67 | ->paginate($limit); | 67 | ->paginate($limit); |
68 | foreach ($list as $row) { | 68 | foreach ($list as $row) { |
69 | - $row->visible(['id','specific_address','route_id']); | 69 | + $row->visible(['id','specific_address','price','create_time','route_id']); |
70 | $row->visible(['route']); | 70 | $row->visible(['route']); |
71 | $row->getRelation('route')->visible(['name']); | 71 | $row->getRelation('route')->visible(['name']); |
72 | } | 72 | } |
application/admin/lang/zh-cn/chartercar.php
0 → 100644
@@ -3,6 +3,8 @@ | @@ -3,6 +3,8 @@ | ||
3 | return [ | 3 | return [ |
4 | 'Id' => 'ID', | 4 | 'Id' => 'ID', |
5 | 'Route_id' => '线路编号', | 5 | 'Route_id' => '线路编号', |
6 | + 'Price' => '拼车价格(计票/城际)', | ||
7 | + 'Create_time' => '创建时间', | ||
6 | 'Route.name' => '线路', | 8 | 'Route.name' => '线路', |
7 | 'Specific_address' => '详细地址' | 9 | 'Specific_address' => '详细地址' |
8 | ]; | 10 | ]; |
application/admin/model/Chartercar.php
0 → 100644
1 | +<?php | ||
2 | + | ||
3 | +namespace app\admin\model; | ||
4 | + | ||
5 | +use think\Model; | ||
6 | + | ||
7 | + | ||
8 | +class Chartercar extends Model | ||
9 | +{ | ||
10 | + | ||
11 | + | ||
12 | + | ||
13 | + | ||
14 | + | ||
15 | + // 表名 | ||
16 | + protected $name = 'chartercar'; | ||
17 | + | ||
18 | + // 自动写入时间戳字段 | ||
19 | + protected $autoWriteTimestamp = false; | ||
20 | + | ||
21 | + // 定义时间戳字段名 | ||
22 | + protected $createTime = false; | ||
23 | + protected $updateTime = false; | ||
24 | + protected $deleteTime = false; | ||
25 | + | ||
26 | + // 追加属性 | ||
27 | + protected $append = [ | ||
28 | + 'create_time_text' | ||
29 | + ]; | ||
30 | + | ||
31 | + | ||
32 | + | ||
33 | + | ||
34 | + | ||
35 | + | ||
36 | + public function getCreateTimeTextAttr($value, $data) | ||
37 | + { | ||
38 | + $value = $value ? $value : (isset($data['create_time']) ? $data['create_time'] : ''); | ||
39 | + return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; | ||
40 | + } | ||
41 | + | ||
42 | + protected function setCreateTimeAttr($value) | ||
43 | + { | ||
44 | + return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); | ||
45 | + } | ||
46 | + | ||
47 | + | ||
48 | + public function specificaddress() | ||
49 | + { | ||
50 | + return $this->belongsTo('Specificaddress', 'specificaddress_id', 'id', [], 'LEFT')->setEagerlyType(0); | ||
51 | + } | ||
52 | + | ||
53 | + | ||
54 | + public function carmodel() | ||
55 | + { | ||
56 | + return $this->belongsTo('Carmodel', 'carmodel_id', 'id', [], 'LEFT')->setEagerlyType(0); | ||
57 | + } | ||
58 | +} |
@@ -37,7 +37,43 @@ class Specificaddress extends Model | @@ -37,7 +37,43 @@ class Specificaddress extends Model | ||
37 | return $this->belongsTo('Route', 'route_id', 'id', [], 'LEFT')->setEagerlyType(0); | 37 | return $this->belongsTo('Route', 'route_id', 'id', [], 'LEFT')->setEagerlyType(0); |
38 | } | 38 | } |
39 | 39 | ||
40 | + public function getReservationTimeTextAttr($value, $data) | ||
41 | + { | ||
42 | + $value = $value ? $value : (isset($data['reservation_time']) ? $data['reservation_time'] : ''); | ||
43 | + return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; | ||
44 | + } | ||
45 | + | ||
46 | + | ||
47 | + public function getStartTimeTextAttr($value, $data) | ||
48 | + { | ||
49 | + $value = $value ? $value : (isset($data['start_time']) ? $data['start_time'] : ''); | ||
50 | + return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; | ||
51 | + } | ||
52 | + | ||
53 | + | ||
54 | + public function getCreateTimeTextAttr($value, $data) | ||
55 | + { | ||
56 | + $value = $value ? $value : (isset($data['create_time']) ? $data['create_time'] : ''); | ||
57 | + return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; | ||
58 | + } | ||
59 | + | ||
40 | 60 | ||
41 | 61 | ||
42 | 62 | ||
63 | + protected function setReservationTimeAttr($value) | ||
64 | + { | ||
65 | + return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); | ||
66 | + } | ||
67 | + | ||
68 | + protected function setStartTimeAttr($value) | ||
69 | + { | ||
70 | + return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); | ||
71 | + } | ||
72 | + | ||
73 | + protected function setCreateTimeAttr($value) | ||
74 | + { | ||
75 | + return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); | ||
76 | + } | ||
77 | + | ||
78 | + | ||
43 | } | 79 | } |
application/admin/validate/Chartercar.php
0 → 100644
1 | +<?php | ||
2 | + | ||
3 | +namespace app\admin\validate; | ||
4 | + | ||
5 | +use think\Validate; | ||
6 | + | ||
7 | +class Chartercar extends Validate | ||
8 | +{ | ||
9 | + /** | ||
10 | + * 验证规则 | ||
11 | + */ | ||
12 | + protected $rule = [ | ||
13 | + ]; | ||
14 | + /** | ||
15 | + * 提示消息 | ||
16 | + */ | ||
17 | + protected $message = [ | ||
18 | + ]; | ||
19 | + /** | ||
20 | + * 验证场景 | ||
21 | + */ | ||
22 | + protected $scene = [ | ||
23 | + 'add' => [], | ||
24 | + 'edit' => [], | ||
25 | + ]; | ||
26 | + | ||
27 | +} |
application/admin/view/chartercar/add.html
0 → 100644
1 | +<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""> | ||
2 | + | ||
3 | + <div class="form-group"> | ||
4 | + <label class="control-label col-xs-12 col-sm-2">{:__('Specificaddress_id')}:</label> | ||
5 | + <div class="col-xs-12 col-sm-8"> | ||
6 | + <input id="c-specificaddress_id" data-rule="required" data-source="specificaddress/index" data-field="specific_address" class="form-control selectpage" name="row[specificaddress_id]" type="text" value="{$specofocaddress_id}"> | ||
7 | + </div> | ||
8 | + </div> | ||
9 | + <div class="form-group"> | ||
10 | + <label class="control-label col-xs-12 col-sm-2">{:__('Price')}:</label> | ||
11 | + <div class="col-xs-12 col-sm-8"> | ||
12 | + <input id="c-price" class="form-control" step="0.01" name="row[price]" type="number"> | ||
13 | + </div> | ||
14 | + </div> | ||
15 | + <div class="form-group"> | ||
16 | + <label class="control-label col-xs-12 col-sm-2">{:__('Carmodel_id')}:</label> | ||
17 | + <div class="col-xs-12 col-sm-8"> | ||
18 | + <input id="c-carmodel_id" data-rule="required" data-source="carmodel/index" class="form-control selectpage" name="row[carmodel_id]" type="text" value=""> | ||
19 | + </div> | ||
20 | + </div> | ||
21 | + <div class="form-group"> | ||
22 | + <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label> | ||
23 | + <div class="col-xs-12 col-sm-8"> | ||
24 | + <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')}"> | ||
25 | + </div> | ||
26 | + </div> | ||
27 | + <div class="form-group layer-footer"> | ||
28 | + <label class="control-label col-xs-12 col-sm-2"></label> | ||
29 | + <div class="col-xs-12 col-sm-8"> | ||
30 | + <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button> | ||
31 | + </div> | ||
32 | + </div> | ||
33 | +</form> |
application/admin/view/chartercar/edit.html
0 → 100644
1 | +<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""> | ||
2 | + | ||
3 | + <div class="form-group"> | ||
4 | + <label class="control-label col-xs-12 col-sm-2">{:__('Specificaddress_id')}:</label> | ||
5 | + <div class="col-xs-12 col-sm-8"> | ||
6 | + <input id="c-specificaddress_id" data-rule="required" data-source="specificaddress/index" class="form-control selectpage" data-field="specific_address" name="row[specificaddress_id]" type="text" value="{$row.specificaddress_id|htmlentities}"> | ||
7 | + </div> | ||
8 | + </div> | ||
9 | + <div class="form-group"> | ||
10 | + <label class="control-label col-xs-12 col-sm-2">{:__('Price')}:</label> | ||
11 | + <div class="col-xs-12 col-sm-8"> | ||
12 | + <input id="c-price" class="form-control" step="0.01" name="row[price]" type="number" value="{$row.price|htmlentities}"> | ||
13 | + </div> | ||
14 | + </div> | ||
15 | + <div class="form-group"> | ||
16 | + <label class="control-label col-xs-12 col-sm-2">{:__('Carmodel_id')}:</label> | ||
17 | + <div class="col-xs-12 col-sm-8"> | ||
18 | + <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}"> | ||
19 | + </div> | ||
20 | + </div> | ||
21 | + <div class="form-group"> | ||
22 | + <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label> | ||
23 | + <div class="col-xs-12 col-sm-8"> | ||
24 | + <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):''}"> | ||
25 | + </div> | ||
26 | + </div> | ||
27 | + <div class="form-group layer-footer"> | ||
28 | + <label class="control-label col-xs-12 col-sm-2"></label> | ||
29 | + <div class="col-xs-12 col-sm-8"> | ||
30 | + <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button> | ||
31 | + </div> | ||
32 | + </div> | ||
33 | +</form> |
application/admin/view/chartercar/index.html
0 → 100644
1 | +<div class="panel panel-default panel-intro"> | ||
2 | + {:build_heading()} | ||
3 | + | ||
4 | + <div class="panel-body"> | ||
5 | + <div id="myTabContent" class="tab-content"> | ||
6 | + <div class="tab-pane fade active in" id="one"> | ||
7 | + <div class="widget-body no-padding"> | ||
8 | + <div id="toolbar" class="toolbar"> | ||
9 | + <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a> | ||
10 | + <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('chartercar/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a> | ||
11 | + <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('chartercar/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a> | ||
12 | + <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('chartercar/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a> | ||
13 | + | ||
14 | + | ||
15 | + | ||
16 | + | ||
17 | + | ||
18 | + </div> | ||
19 | + <table id="table" class="table table-striped table-bordered table-hover table-nowrap" | ||
20 | + data-operate-edit="{:$auth->check('chartercar/edit')}" | ||
21 | + data-operate-del="{:$auth->check('chartercar/del')}" | ||
22 | + width="100%"> | ||
23 | + </table> | ||
24 | + </div> | ||
25 | + </div> | ||
26 | + | ||
27 | + </div> | ||
28 | + </div> | ||
29 | +</div> |
@@ -24,12 +24,7 @@ | @@ -24,12 +24,7 @@ | ||
24 | <input id="c-end_address" class="form-control" name="row[end_address]" type="text"> | 24 | <input id="c-end_address" class="form-control" name="row[end_address]" type="text"> |
25 | </div> | 25 | </div> |
26 | </div> | 26 | </div> |
27 | - <div class="form-group"> | ||
28 | - <label class="control-label col-xs-12 col-sm-2">{:__('Price')}:</label> | ||
29 | - <div class="col-xs-12 col-sm-8"> | ||
30 | - <input id="c-price" class="form-control" step="0.01" name="row[price]" type="number"> | ||
31 | - </div> | ||
32 | - </div> | 27 | + |
33 | <div class="form-group"> | 28 | <div class="form-group"> |
34 | <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label> | 29 | <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label> |
35 | <div class="col-xs-12 col-sm-8"> | 30 | <div class="col-xs-12 col-sm-8"> |
@@ -24,12 +24,7 @@ | @@ -24,12 +24,7 @@ | ||
24 | <input id="c-end_address" class="form-control" name="row[end_address]" type="text" value="{$row.end_address|htmlentities}"> | 24 | <input id="c-end_address" class="form-control" name="row[end_address]" type="text" value="{$row.end_address|htmlentities}"> |
25 | </div> | 25 | </div> |
26 | </div> | 26 | </div> |
27 | - <div class="form-group"> | ||
28 | - <label class="control-label col-xs-12 col-sm-2">{:__('Price')}:</label> | ||
29 | - <div class="col-xs-12 col-sm-8"> | ||
30 | - <input id="c-price" class="form-control" step="0.01" name="row[price]" type="number" value="{$row.price|htmlentities}"> | ||
31 | - </div> | ||
32 | - </div> | 27 | + |
33 | <div class="form-group"> | 28 | <div class="form-group"> |
34 | <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label> | 29 | <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label> |
35 | <div class="col-xs-12 col-sm-8"> | 30 | <div class="col-xs-12 col-sm-8"> |
@@ -24,10 +24,7 @@ | @@ -24,10 +24,7 @@ | ||
24 | <input id="c-seat_name" class="form-control" name="row[seat_name][]" type="text"> | 24 | <input id="c-seat_name" class="form-control" name="row[seat_name][]" type="text"> |
25 | <input id="c-seat_no" style="display: none;" class="form-control" value="1" name="row[seat_no][]" type="text"> | 25 | <input id="c-seat_no" style="display: none;" class="form-control" value="1" name="row[seat_no][]" type="text"> |
26 | </div> | 26 | </div> |
27 | - <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
28 | - <div class="col-xs-3 col-sm-4"> | ||
29 | - <input id="c-seat_price" class="form-control" name="row[seat_price][]" type="text"> | ||
30 | - </div> | 27 | + |
31 | </div> | 28 | </div> |
32 | <div class="col-xs-3 col-sm-12"> | 29 | <div class="col-xs-3 col-sm-12"> |
33 | <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | 30 | <label class="control-label col-xs-4 col-sm-2">座位名称:</label> |
@@ -36,10 +33,7 @@ | @@ -36,10 +33,7 @@ | ||
36 | <input id="c-seat_no" style="display: none;" class="form-control" value="2" name="row[seat_no][]" type="text"> | 33 | <input id="c-seat_no" style="display: none;" class="form-control" value="2" name="row[seat_no][]" type="text"> |
37 | 34 | ||
38 | </div> | 35 | </div> |
39 | - <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
40 | - <div class="col-xs-3 col-sm-4"> | ||
41 | - <input id="c-seat_price" class="form-control" name="row[seat_price][]" type="text"> | ||
42 | - </div> | 36 | + |
43 | </div> | 37 | </div> |
44 | <div class="col-xs-3 col-sm-12"> | 38 | <div class="col-xs-3 col-sm-12"> |
45 | <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | 39 | <label class="control-label col-xs-4 col-sm-2">座位名称:</label> |
@@ -48,10 +42,7 @@ | @@ -48,10 +42,7 @@ | ||
48 | <input id="c-seat_no" style="display: none;" class="form-control" value="3" name="row[seat_no][]" type="text"> | 42 | <input id="c-seat_no" style="display: none;" class="form-control" value="3" name="row[seat_no][]" type="text"> |
49 | 43 | ||
50 | </div> | 44 | </div> |
51 | - <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
52 | - <div class="col-xs-3 col-sm-4"> | ||
53 | - <input id="c-seat_price" class="form-control" name="row[seat_price][]" type="text"> | ||
54 | - </div> | 45 | + |
55 | </div> | 46 | </div> |
56 | <div class="col-xs-3 col-sm-12"> | 47 | <div class="col-xs-3 col-sm-12"> |
57 | <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | 48 | <label class="control-label col-xs-4 col-sm-2">座位名称:</label> |
@@ -60,10 +51,7 @@ | @@ -60,10 +51,7 @@ | ||
60 | <input id="c-seat_no" style="display: none;" class="form-control" value="4" name="row[seat_no][]" type="text"> | 51 | <input id="c-seat_no" style="display: none;" class="form-control" value="4" name="row[seat_no][]" type="text"> |
61 | 52 | ||
62 | </div> | 53 | </div> |
63 | - <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
64 | - <div class="col-xs-3 col-sm-4"> | ||
65 | - <input id="c-seat_price" class="form-control" name="row[seat_price][]" type="text"> | ||
66 | - </div> | 54 | + |
67 | </div> | 55 | </div> |
68 | 56 | ||
69 | <div class="col-xs-3 col-sm-12" hidden id="seat5"> | 57 | <div class="col-xs-3 col-sm-12" hidden id="seat5"> |
@@ -71,11 +59,6 @@ | @@ -71,11 +59,6 @@ | ||
71 | <div class="col-xs-3 col-sm-4"> | 59 | <div class="col-xs-3 col-sm-4"> |
72 | <input id="c-seat_name5" class="form-control" name="row[seat_name][]" type="text"> | 60 | <input id="c-seat_name5" class="form-control" name="row[seat_name][]" type="text"> |
73 | <input id="c-seat_no" style="display: none;" class="form-control" value="5" name="row[seat_no][]" type="text"> | 61 | <input id="c-seat_no" style="display: none;" class="form-control" value="5" name="row[seat_no][]" type="text"> |
74 | - | ||
75 | - </div> | ||
76 | - <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
77 | - <div class="col-xs-3 col-sm-4"> | ||
78 | - <input id="c-seat_price5" class="form-control" name="row[seat_price][]" type="text"> | ||
79 | </div> | 62 | </div> |
80 | </div> | 63 | </div> |
81 | <div class="col-xs-3 col-sm-12" hidden id="seat6"> | 64 | <div class="col-xs-3 col-sm-12" hidden id="seat6"> |
@@ -83,19 +66,8 @@ | @@ -83,19 +66,8 @@ | ||
83 | <div class="col-xs-3 col-sm-4"> | 66 | <div class="col-xs-3 col-sm-4"> |
84 | <input id="c-seat_name6" class="form-control" name="row[seat_name][]" type="text"> | 67 | <input id="c-seat_name6" class="form-control" name="row[seat_name][]" type="text"> |
85 | <input id="c-seat_no" style="display: none;" class="form-control" value="6" name="row[seat_no][]" type="text"> | 68 | <input id="c-seat_no" style="display: none;" class="form-control" value="6" name="row[seat_no][]" type="text"> |
86 | - | ||
87 | - </div> | ||
88 | - <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
89 | - <div class="col-xs-3 col-sm-4"> | ||
90 | - <input id="c-seat_price6" class="form-control" name="row[seat_price][]" type="text"> | ||
91 | </div> | 69 | </div> |
92 | </div> | 70 | </div> |
93 | - | ||
94 | - | ||
95 | - | ||
96 | - | ||
97 | - | ||
98 | - | ||
99 | </div> | 71 | </div> |
100 | <div class="form-group layer-footer"> | 72 | <div class="form-group layer-footer"> |
101 | <label class="control-label col-xs-12 col-sm-2"></label> | 73 | <label class="control-label col-xs-12 col-sm-2"></label> |
@@ -23,16 +23,9 @@ | @@ -23,16 +23,9 @@ | ||
23 | <div class="col-xs-3 col-sm-4"> | 23 | <div class="col-xs-3 col-sm-4"> |
24 | <input id="c-seat_name" class="form-control" value="{$vo.seat_name}" name="row[seat_name][]" type="text"> | 24 | <input id="c-seat_name" class="form-control" value="{$vo.seat_name}" name="row[seat_name][]" type="text"> |
25 | <input id="c-seat_no" style="display: none;" class="form-control" value="6" name="row[seat_no][]" type="text"> | 25 | <input id="c-seat_no" style="display: none;" class="form-control" value="6" name="row[seat_no][]" type="text"> |
26 | - | ||
27 | - </div> | ||
28 | - <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
29 | - <div class="col-xs-3 col-sm-4"> | ||
30 | - <input id="c-seat_price" class="form-control" value="{$vo.seat_price}" name="row[seat_price][]" type="text"> | ||
31 | </div> | 26 | </div> |
32 | </div> | 27 | </div> |
33 | {/volist} | 28 | {/volist} |
34 | - | ||
35 | - | ||
36 | </div> | 29 | </div> |
37 | <div class="form-group layer-footer"> | 30 | <div class="form-group layer-footer"> |
38 | <label class="control-label col-xs-12 col-sm-2"></label> | 31 | <label class="control-label col-xs-12 col-sm-2"></label> |
@@ -17,6 +17,18 @@ | @@ -17,6 +17,18 @@ | ||
17 | <input id="c-specific_address" class="form-control" name="row[specific_address]" type="text"> | 17 | <input id="c-specific_address" class="form-control" name="row[specific_address]" type="text"> |
18 | </div> | 18 | </div> |
19 | </div> | 19 | </div> |
20 | + <div class="form-group"> | ||
21 | + <label class="control-label col-xs-12 col-sm-2">{:__('Price')}:</label> | ||
22 | + <div class="col-xs-12 col-sm-8"> | ||
23 | + <input id="c-price" class="form-control" step="0.01" name="row[price]" type="number"> | ||
24 | + </div> | ||
25 | + </div> | ||
26 | + <div class="form-group"> | ||
27 | + <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label> | ||
28 | + <div class="col-xs-12 col-sm-8"> | ||
29 | + <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')}"> | ||
30 | + </div> | ||
31 | + </div> | ||
20 | <div class="form-group layer-footer"> | 32 | <div class="form-group layer-footer"> |
21 | <label class="control-label col-xs-12 col-sm-2"></label> | 33 | <label class="control-label col-xs-12 col-sm-2"></label> |
22 | <div class="col-xs-12 col-sm-8"> | 34 | <div class="col-xs-12 col-sm-8"> |
@@ -16,6 +16,18 @@ | @@ -16,6 +16,18 @@ | ||
16 | <input id="c-specific_address" class="form-control" name="row[specific_address]" type="text" value="{$row.specific_address|htmlentities}"> | 16 | <input id="c-specific_address" class="form-control" name="row[specific_address]" type="text" value="{$row.specific_address|htmlentities}"> |
17 | </div> | 17 | </div> |
18 | </div> | 18 | </div> |
19 | + <div class="form-group"> | ||
20 | + <label class="control-label col-xs-12 col-sm-2">{:__('Price')}:</label> | ||
21 | + <div class="col-xs-12 col-sm-8"> | ||
22 | + <input id="c-price" class="form-control" step="0.01" name="row[price]" type="number" value="{$row.price|htmlentities}"> | ||
23 | + </div> | ||
24 | + </div> | ||
25 | + <div class="form-group"> | ||
26 | + <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label> | ||
27 | + <div class="col-xs-12 col-sm-8"> | ||
28 | + <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):''}"> | ||
29 | + </div> | ||
30 | + </div> | ||
19 | <div class="form-group layer-footer"> | 31 | <div class="form-group layer-footer"> |
20 | <label class="control-label col-xs-12 col-sm-2"></label> | 32 | <label class="control-label col-xs-12 col-sm-2"></label> |
21 | <div class="col-xs-12 col-sm-8"> | 33 | <div class="col-xs-12 col-sm-8"> |
@@ -141,8 +141,11 @@ class Car extends Base | @@ -141,8 +141,11 @@ class Car extends Base | ||
141 | } | 141 | } |
142 | } | 142 | } |
143 | $price=0; | 143 | $price=0; |
144 | - foreach ($newseat as $k=>$v){ | ||
145 | - $price=bcadd($price,$newseat[$k]['seat_price'],2); | 144 | + $specificaddress=Db::name("specificaddress")->where("id",$specificaddress_id)->find(); |
145 | + if($specificaddress){ | ||
146 | + $price=bcmul($number,$specificaddress['price'],2); | ||
147 | + }else{ | ||
148 | + $this->error("价格计算错误"); | ||
146 | } | 149 | } |
147 | $data=[ | 150 | $data=[ |
148 | "order_no"=>getOrderSn(), | 151 | "order_no"=>getOrderSn(), |
@@ -894,7 +897,14 @@ class Car extends Base | @@ -894,7 +897,14 @@ class Car extends Base | ||
894 | $intended_driver_id = $this->request->param("intended_driver_id");//意向司机 | 897 | $intended_driver_id = $this->request->param("intended_driver_id");//意向司机 |
895 | $remarks = $this->request->param("remarks");//备注 | 898 | $remarks = $this->request->param("remarks");//备注 |
896 | $carmodel=Db::name("carmodel")->where("id",$carmodel_id)->find(); | 899 | $carmodel=Db::name("carmodel")->where("id",$carmodel_id)->find(); |
897 | - $price=bcmul($charter_num,$carmodel['price'],2); | 900 | + $specificaddress_id = $this->request->param("specificaddress_id");//区域id |
901 | + $chartercar=Db::name("chartercar") | ||
902 | + ->where("specificaddress_id",$specificaddress_id) | ||
903 | + ->where("carmodel_id",$carmodel_id) | ||
904 | + ->find(); | ||
905 | + $price=0; | ||
906 | + $price=bcmul($charter_num,$chartercar['price'],2); | ||
907 | + | ||
898 | $data=[ | 908 | $data=[ |
899 | "order_no"=>getOrderSn(), | 909 | "order_no"=>getOrderSn(), |
900 | "price"=>$price, | 910 | "price"=>$price, |
@@ -943,7 +953,13 @@ class Car extends Base | @@ -943,7 +953,13 @@ class Car extends Base | ||
943 | $intended_driver_id = $this->request->param("intended_driver_id");//意向司机 | 953 | $intended_driver_id = $this->request->param("intended_driver_id");//意向司机 |
944 | $remarks = $this->request->param("remarks");//备注 | 954 | $remarks = $this->request->param("remarks");//备注 |
945 | $carmodel=Db::name("carmodel")->where("id",$carmodel_id)->find(); | 955 | $carmodel=Db::name("carmodel")->where("id",$carmodel_id)->find(); |
946 | - $price=bcmul($charter_num,$carmodel['price'],2); | 956 | + $specificaddress_id = $this->request->param("specificaddress_id");//区域id |
957 | + $chartercar=Db::name("chartercar") | ||
958 | + ->where("specificaddress_id",$specificaddress_id) | ||
959 | + ->where("carmodel_id",$carmodel_id) | ||
960 | + ->find(); | ||
961 | + $price=0; | ||
962 | + $price=bcmul($charter_num,$chartercar['price'],2); | ||
947 | $data=[ | 963 | $data=[ |
948 | "order_no"=>getOrderSn(), | 964 | "order_no"=>getOrderSn(), |
949 | "price"=>$price, | 965 | "price"=>$price, |
@@ -987,7 +1003,13 @@ class Car extends Base | @@ -987,7 +1003,13 @@ class Car extends Base | ||
987 | $car=Db::name("car")->where("driver_id",$driver['id'])->find(); | 1003 | $car=Db::name("car")->where("driver_id",$driver['id'])->find(); |
988 | $carmodel=Db::name("carmodel")->where("id",$car['carmodel_id'])->find(); | 1004 | $carmodel=Db::name("carmodel")->where("id",$car['carmodel_id'])->find(); |
989 | $route=Db::name("route")->where("id",$car['route_id'])->find(); | 1005 | $route=Db::name("route")->where("id",$car['route_id'])->find(); |
990 | - $price=bcmul($number,$route['price'],2); | 1006 | + $price=0; |
1007 | + $specificaddress=Db::name("specificaddress")->where("id",$specificaddress_id)->find(); | ||
1008 | + if($specificaddress){ | ||
1009 | + $price=bcmul($number,$specificaddress['price'],2); | ||
1010 | + }else{ | ||
1011 | + $this->error("价格计算错误"); | ||
1012 | + } | ||
991 | $data=[ | 1013 | $data=[ |
992 | "order_no"=>getOrderSn(), | 1014 | "order_no"=>getOrderSn(), |
993 | "price"=>$price, | 1015 | "price"=>$price, |
@@ -1048,7 +1070,13 @@ class Car extends Base | @@ -1048,7 +1070,13 @@ class Car extends Base | ||
1048 | $car=Db::name("car")->where("driver_id",$driver['id'])->find(); | 1070 | $car=Db::name("car")->where("driver_id",$driver['id'])->find(); |
1049 | $carmodel=Db::name("carmodel")->where("id",$carmodel_id)->find(); | 1071 | $carmodel=Db::name("carmodel")->where("id",$carmodel_id)->find(); |
1050 | $route=Db::name("route")->where("id",$car['route_id'])->find(); | 1072 | $route=Db::name("route")->where("id",$car['route_id'])->find(); |
1051 | - $price=bcmul($number,$route['price'],2); | 1073 | + $price=0; |
1074 | + $specificaddress=Db::name("specificaddress")->where("id",$specificaddress_id)->find(); | ||
1075 | + if($specificaddress){ | ||
1076 | + $price=bcmul($number,$specificaddress['price'],2); | ||
1077 | + }else{ | ||
1078 | + $this->error("价格计算错误"); | ||
1079 | + } | ||
1052 | $data=[ | 1080 | $data=[ |
1053 | "order_no"=>getOrderSn(), | 1081 | "order_no"=>getOrderSn(), |
1054 | "price"=>$price, | 1082 | "price"=>$price, |
@@ -1070,7 +1098,6 @@ class Car extends Base | @@ -1070,7 +1098,6 @@ class Car extends Base | ||
1070 | ]; | 1098 | ]; |
1071 | $res=Db::name("order")->insertGetId($data); | 1099 | $res=Db::name("order")->insertGetId($data); |
1072 | $this->success("请求成功",$res); | 1100 | $this->success("请求成功",$res); |
1073 | - | ||
1074 | } | 1101 | } |
1075 | 1102 | ||
1076 | /** | 1103 | /** |
public/assets/js/backend/chartercar.js
0 → 100644
1 | +define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { | ||
2 | + | ||
3 | + var Controller = { | ||
4 | + index: function () { | ||
5 | + // 初始化表格参数配置 | ||
6 | + Table.api.init({ | ||
7 | + extend: { | ||
8 | + index_url: 'chartercar/index' + location.search, | ||
9 | + add_url: 'chartercar/add'+ location.search, | ||
10 | + edit_url: 'chartercar/edit', | ||
11 | + del_url: 'chartercar/del', | ||
12 | + multi_url: 'chartercar/multi', | ||
13 | + import_url: 'chartercar/import', | ||
14 | + table: 'chartercar', | ||
15 | + } | ||
16 | + }); | ||
17 | + | ||
18 | + var table = $("#table"); | ||
19 | + | ||
20 | + // 初始化表格 | ||
21 | + table.bootstrapTable({ | ||
22 | + url: $.fn.bootstrapTable.defaults.extend.index_url, | ||
23 | + pk: 'id', | ||
24 | + sortName: 'id', | ||
25 | + columns: [ | ||
26 | + [ | ||
27 | + {checkbox: true}, | ||
28 | + {field: 'id', title: __('Id')}, | ||
29 | + {field: 'specificaddress_id', title: __('Specificaddress_id')}, | ||
30 | + {field: 'price', title: __('Price'), operate:'BETWEEN'}, | ||
31 | + {field: 'create_time', title: __('Create_time'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
32 | + {field: 'specificaddress.specific_address', title: __('Specificaddress.specific_address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
33 | + {field: 'carmodel.name', title: __('Carmodel.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
34 | + {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} | ||
35 | + ] | ||
36 | + ] | ||
37 | + }); | ||
38 | + | ||
39 | + // 为表格绑定事件 | ||
40 | + Table.api.bindevent(table); | ||
41 | + }, | ||
42 | + add: function () { | ||
43 | + Controller.api.bindevent(); | ||
44 | + }, | ||
45 | + edit: function () { | ||
46 | + Controller.api.bindevent(); | ||
47 | + }, | ||
48 | + api: { | ||
49 | + bindevent: function () { | ||
50 | + Form.api.bindevent($("form[role=form]")); | ||
51 | + } | ||
52 | + } | ||
53 | + }; | ||
54 | + return Controller; | ||
55 | +}); |
@@ -30,7 +30,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin | @@ -30,7 +30,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin | ||
30 | {field: 'type', title: __('Type'), searchList: {"1":__('Type 1'),"2":__('Type 2')},custom: {"1":'none', "2":'none',"3":'none', "4":'none', "5":'none', "6":'none', "7":'none'}, formatter: Table.api.formatter.status}, | 30 | {field: 'type', title: __('Type'), searchList: {"1":__('Type 1'),"2":__('Type 2')},custom: {"1":'none', "2":'none',"3":'none', "4":'none', "5":'none', "6":'none', "7":'none'}, formatter: Table.api.formatter.status}, |
31 | {field: 'start_address', title: __('Start_address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 31 | {field: 'start_address', title: __('Start_address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
32 | {field: 'end_address', title: __('End_address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 32 | {field: 'end_address', title: __('End_address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
33 | - {field: 'price', title: __('Price'), operate:'BETWEEN'}, | ||
34 | {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, | 33 | {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, |
35 | {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate, | 34 | {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate, |
36 | buttons:[ | 35 | buttons:[ |
@@ -32,8 +32,29 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin | @@ -32,8 +32,29 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin | ||
32 | {field: 'route_id', title: __('Route_id')}, | 32 | {field: 'route_id', title: __('Route_id')}, |
33 | {field: 'route.name', title: __('Route.name')}, | 33 | {field: 'route.name', title: __('Route.name')}, |
34 | {field: 'specific_address', title: __('Specific_address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 34 | {field: 'specific_address', title: __('Specific_address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
35 | - {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} | ||
36 | - ] | 35 | + {field: 'price', title: __('Price'), operate:'BETWEEN'}, |
36 | + {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, | ||
37 | + {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate, | ||
38 | + buttons:[ | ||
39 | + | ||
40 | + { | ||
41 | + name: 'farm_planting_realityplan', | ||
42 | + text:"包车价格", | ||
43 | + title: function (row) { | ||
44 | + return "查看《"+row.specific_address +"》包车价格" | ||
45 | + }, | ||
46 | + extend:'data-area=["94%","94%"]', | ||
47 | + classname: 'btn btn-xs btn-primary btn-dialog', | ||
48 | + icon: 'fa fa-recipt', | ||
49 | + url: 'chartercar/index?specofocaddress_id={id}', | ||
50 | + visible: function (row) { | ||
51 | + return true; | ||
52 | + }, | ||
53 | + }, | ||
54 | + | ||
55 | + ] | ||
56 | + | ||
57 | + }] | ||
37 | ] | 58 | ] |
38 | }); | 59 | }); |
39 | 60 |
-
请 注册 或 登录 后发表评论