<?php
namespace app\product\admin;
use app\system\admin\Admin;
use app\product\model\Project as ProjectModel;
use app\product\model\Product as ProductModel;
use app\product\model\ProjectProduct as ProjectProductModel;use app\product\model\Unit as UnitModel;
class ProjectProduct extends Admin
{
protected $hisiModel = 'ProjectProduct' protected $hisiTable = '' protected $hisiAddScene = '' protected $hisiEditScene = '' protected function initialize()
{
parent::initialize();
if ($this->request->action() != 'index' && !$this->request->isPost()) {
$Product = ProductModel::getSelect(ProductModel::all());
$this->assign('Product', $Product);
}
}
public function index()
{
$pid = $this->request->get('pid');
$this->assign('pid', $pid);
if ($this->request->isAjax()) {
$where = [];
$page = $this->request->param('page/d', 1);
$limit = $this->request->param('limit/d', 15);
$where['project_id'] = $pid;
$unit = UnitModel::column('id,name');
$data['data'] = ProjectProductModel::with('hasProduct')
->where($where)
->page($page)
->limit($limit)
->order('id desc')
->select();
foreach ($data['data'] as $key => $value) {
$data['data'][$key]['has_product']['unit'] = $unit[$data['data'][$key]['has_product']['unit_id']];
$data['data'][$key]['has_product']['decomposition'] = $unit[$data['data'][$key]['has_product']['decomposition_id']];
}
$data['count'] = ProjectProductModel::where($where)->count('id');
$data['code'] = 0;
return json($data);
}
$this->assign('hisiTabType', 0);
$this->assign('hisiTabData', '');
return $this->fetch();
}
public function add()
{
$pid = $this->request->get('pid');
$this->assign('pid', $pid);
if ($this->request->isPost()) {
$postData = $this->request->post();
if ($this->hisiValidate)
if (strpos($this->hisiValidate, '\\') === false ) {
if (defined('IS_PLUGINS')) {
$this->hisiValidate = 'plugins\\'.$this->request->param('_p').'\\validate\\'.$this->hisiValidate;
} else {
$this->hisiValidate = 'app\\'.$this->request->module().'\\validate\\'.$this->hisiValidate;
}
}
if ($this->hisiAddScene) {
$this->hisiValidate = $this->hisiValidate.'.'.$this->hisiAddScene;
}
$result = $this->validate($postData, $this->hisiValidate);
if ($result !== true) {
return $this->error($result);
}
}
if ($this->hisiModel)
$model = $this->model();
if (!$model->save($postData)) {
return $this->error($model->getError());
}
} else if ($this->hisiTable)
if (!Db::name($this->hisiTable)->insert($postData)) {
return $this->error('保存失败');
}
} else {
return $this->error('当前控制器缺少属性(hisiModel、hisiTable至少定义一个)');
}
return $this->success('保存成功', '');
}
$template = $this->request->param('template', 'form');
return $this->fetch($template);
}
}