public function __construct($data = array()) { $this->setPropertiesDefine(array('user' => array('getter' => function ($item) { return User::findOneByPk($item->user_id); }), 'action' => array('getter' => function ($item) { $all = AccessAction::find()->all(true); $all = array_group($all, 'id', true); return new AccessAction($all[$item->action_id]); }), 'type_text' => array('getter' => function ($item) { return self::$type_list[$item->type]; }))); parent::__construct($data); }
public function __construct($data = array()) { parent::__construct($data); $this->setPropertiesDefine(array('customer_id' => array('options' => function (SampleProduceOrder $item = null) { if ($item && $item->customer_id) { $company_alias_name = Customer::findOneByPk($item->customer_id)->company_alias_name; return array($item->customer_id => $company_alias_name); } return null; }, 'alias' => '客户'), 'customer' => array('getter' => function (self $item) { if ($item) { return Customer::findOneByPk($item->customer_id); } return null; }), 'contact' => array('getter' => function (SampleProduceOrder $item) { if ($item->contact_id) { return CustomerContact::findOneByPk($item->contact_id); } return null; }), 'contact_id' => array('options' => function (SampleProduceOrder $item = null) { if ($item && $item->contact_id) { $contact_name = CustomerContact::findOneByPk($item->contact_id)->chinese_name; return array($item->contact_id => $contact_name); } return null; }, 'alias' => '联系人'), 'boss_head_employee_id' => array('options' => function () { $tmp = Employee::find('state=?', Employee::STATE_ENABLED)->all(true); return array_combine(array_column($tmp, 'id'), array_column($tmp, 'name')); }, 'display' => function (self $item) { $tmp = Employee::findOneByPk($item->boss_head_employee_id); if (!$tmp) { return ''; } return $tmp->state == Employee::STATE_ENABLED ? $tmp->name : '<del>' . $tmp->name . '</del>'; }, 'alias' => '负责人'), 'produce_finish_date' => array('default' => date('Y-m-d')), 'currency_id' => array('options' => function () { $tmp = Currency::find()->all(true); return array_combine(array_column($tmp, 'id'), array_column($tmp, 'unit_name')); }, 'display' => function (self $item) { if ($item) { $tmp = Currency::find()->all(true); $tmp = array_group($tmp, 'id', true); return $tmp[$item->currency_id]['unit_name']; } return ''; }), 'product_fee' => array('description' => 'RMB'), 'business_order' => array('getter' => function (self $item) { return BusinessOrder::findOneByPk($item->business_order_id); }))); }
public function index() { $process_list = array(); $all_process = WorkProcess::find()->all(true); $all_process = array_group($all_process, 'work_stage_id'); foreach (WorkStage::$work_stage_list as $stage_id => $name) { $rs = array(); $ps = $all_process[$stage_id] ?: array(); array_orderby($ps, 'ord', SORT_DESC); foreach ($ps as $p) { $rs[] = new WorkProcess($p); } $process_list[$stage_id] = $rs; } return array('process_list' => $process_list); }
/** * @param $get * @param $post * @return array */ public function update($get, $post) { $sample_id = $get['sample_id'] ?: $post['sample_id']; $sample_info = Sample::findOneByPk($sample_id); if ($post) { SampleWorkCost::deleteWhere(0, 'sample_id = ?', $sample_id); $data = array(); foreach ($post['price_list'] as $flow_id => $price) { $data[] = array('sample_id' => $sample_id, 'technic_flow_id' => $flow_id, 'price' => $price); } SampleWorkCost::insertMany($data); return new Result('操作成功', true); } $technic_flow_list = (new SingleSample())->getPropertiesDefine('technic_flow_id_list')['options']; $tmp = SampleWorkCost::find('sample_id = ?', $sample_id)->all(true); $cost_data = array_group($tmp, 'technic_flow_id', true); return array('sample_info' => $sample_info, 'technic_flow_list' => $technic_flow_list, 'cost_data' => $cost_data); }
public function __construct($data = array()) { parent::__construct($data); $this->setPropertiesDefine(array('logistics_company' => array('options' => function () { $tmp = LogisticsCompany::find('state=?', LogisticsCompany::STATE_ENABLED)->all(true); return array_combine(array_column($tmp, 'id'), array_column($tmp, 'name')); }, 'display' => function (self $item) { $tmp = LogisticsCompany::findOneByPk($item->logistics_company); if (!$tmp) { return ''; } return $tmp->state == LogisticsCompany::STATE_ENABLED ? $tmp->name : '<del>' . $tmp->name . '</del>'; }), 'fee_currency_id' => array('options' => function () { $tmp = Currency::find()->all(true); return array_combine(array_column($tmp, 'id'), array_column($tmp, 'unit_name')); }, 'display' => function (self $item) { if ($item) { $tmp = Currency::find()->all(true); $tmp = array_group($tmp, 'id', true); return $tmp[$item->fee_currency_id]['unit_name']; } return ''; }), 'deliver_date' => array('default' => date('Y-m-d')))); }
/** * 获取所有权限列表 * @description 这里为了强制后台权限更新之后,刷新用户最新权限, * 因此不做cache * @param $user_group_id * @param int $type 白名单0,黑名单1 * @return mixed */ private static function getActionList($user_group_id, $type = 0) { $tmp = UserGroupAuth::find('user_group_id = ? AND type = ?', $user_group_id, $type)->all(true); $action_id_list = array_column($tmp, 'action_id'); $action_list = AccessAction::find('id IN ?', $action_id_list)->all(true); $action_list = array_group($action_list, 'id', true); foreach ($tmp as $k => $item) { $tmp[$k]['uri'] = $action_list[$item['action_id']]['uri']; } return $tmp; }
/** * @param $data * @param $current * @param array $opt * @return string */ public static function generateParentTreeSelector($data, $current, $opt = array()) { $opt = array_merge(array('return_as_tree' => false, 'level_key' => 'tree_level', 'id_key' => 'id', 'name_key' => 'name', 'parent_id_key' => 'parent_id', 'children_key' => 'children'), $opt); $data = array_filter_subtree(0, $data, $opt); /** @var array $data */ $data = array_group($data, $opt['id_key'], true); $match = false; foreach ($data as $k => $item) { if ($item[$opt['id_key']] == $current[$opt['id_key']]) { $match = true; $data[$k]['__current__'] = true; } else { if ($match && $item[$opt['level_key']] <= $current[$opt['level_key']]) { $match = false; } else { if ($match && $item[$opt['level_key']] > $current[$opt['level_key']]) { $data[$k]['__belongs__'] = true; } else { $match = false; } } } $data[$k]['tree_name'] = str_repeat(' ', $item[$opt['level_key']] * 5) . '|-' . $item[$opt['name_key']]; } $html = '<select size="1" name="' . $opt['parent_id_key'] . '">'; $html .= '<option value="0">顶级</option>'; foreach ($data as $item) { $html .= '<option value="' . $item[$opt['id_key']] . '" ' . ($item[$opt['id_key']] == $current[$opt['parent_id_key']] ? 'selected="selected"' : '') . ($item['__belongs__'] || $item['__current__'] ? ' disabled="disabled"' : '') . '>' . $item['tree_name'] . '</option>'; } $html .= '</select>'; return $html; }
use Lite\Core\Config; use Lite\CRUD\ModelInterface; use Lite\DB\Model; use www\model\WorkProcess; use www\model\WorkStage; use function Lite\func\array_group; use function Lite\func\dump; use function Lite\func\h; /** @var ModelInterface|Model $model_instance */ include $this->resolveTemplate('inc/header.inc.php'); $pk = $model_instance->getPrimaryKey(); $extra_params = $this->getData('extra_params'); $update_fields = $this->getData('update_fields'); $all_process_list = WorkProcess::getProcessInOrder(); $all_process_list = array_group($all_process_list, 'work_stage_id'); ?> <div id="col-aside"> <?php echo $this->getSideMenu(); ?> </div> <div id="col-main"> <form action="<?php echo $this->getUrl($this->getController() . '/update', array($pk => $model_instance->{$pk})); ?> " class="frm" rel="async" method="post"> <input style="display:none"> <input type="password" style="display:none"> <?php
public function update($get, $post) { $order = SampleProduceOrder::findOneByPk($get['id']) ?: new SampleProduceOrder(); if ($post) { if ($post['produce_type'] == SampleProduceOrder::TYPE_ORDER) { if ($post['business_order_no']) { $post['business_order_id'] = BusinessOrder::find('order_no=?', $post['business_order_no'])->ceil('id'); } if (!$post['business_order_id']) { return new Result('您输入的订单号没有对应的订单:' . $post['business_order_no']); } } $org_id = $order->boss_head_employee_id; $order->setValues($post); if (!$order->id) { $order->boss_head_employee_id = Auth::instance()->getLoginUserId(); } else { $order->boss_head_employee_id = $org_id; } $result = parent::update($get, $post); if ($result->isSuccess()) { return new Result('操作成功', true); } } $customer_list = Customer::find()->all(); $current_contact_list = array(); if ($order->id) { $current_contact_list = CustomerContact::find('customer_id =?', $order->contact->customer_id)->all(); } $all_contact_list = CustomerContact::find()->all(true); $all_contact_list = array_group($all_contact_list, 'customer_id'); return array('order' => $order, 'customer_list' => $customer_list, 'all_contact_list' => $all_contact_list, 'current_contact_list' => $current_contact_list); }
</td> </tr> </tbody> </table> </form> <style> .field-produce_finish_date {display:none;} </style> <script> seajs.use('jquery', function($){ var SAMPLE_PRODUCE_TYPE_ORDER = '<?php echo SampleProduceOrder::TYPE_ORDER; ?> '; var CUSTOMER_LIST = <?php echo json_encode(array_group(Model::convertObjectListToArray($customer_list), 'id', true)); ?> ; var ALL_CONTACT_LIST = <?php echo json_encode($all_contact_list); ?> ; var $CUS_SEL = $('[name=customer_id]'); var $CONT_SEL = $('[name=contact_id]'); $CUS_SEL.change(function(){ $CONT_SEL[0].options.length = 0; $('#address').html('-'); if(this.value){ var contact_list = ALL_CONTACT_LIST[this.value]; var CURRENT_CUS = CUSTOMER_LIST[this.value];