作者 郭文星

123

  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 }
  1 +<?php
  2 +
  3 +return [
  4 + 'Id' => 'ID',
  5 + 'Specificaddress_id' => '区域编号',
  6 + 'Price' => '包车价格',
  7 + 'Carmodel_id' => '车型',
  8 + 'Create_time' => '创建时间',
  9 + 'Specificaddress.specific_address' => '详细地址',
  10 + 'Carmodel.name' => '车型名称'
  11 +];
@@ -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 ];
  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 }
  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 +}
  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>
  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>
  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 /**
  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} 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 +
36 ] 55 ]
  56 +
  57 + }]
37 ] 58 ]
38 }); 59 });
39 60