public function actionSearchChemical() { $me = _G('ME'); $group = _G('GROUP'); if (!$me->id || !$group->id || !$me->isAllowedTo('设置')) { return; } $form = $this->form(); $type = trim($form['type']); if (empty($form) || !($q = trim($form['q']))) { return \Gini\IoC::construct('\\Gini\\CGI\\Response\\JSON', []); } $params['keyword'] = $q; if ($type !== '' && $type != \Gini\ORM\ChemicalLimits\Request::CAS_DEFAULT_ALL) { $params['type'] = $type; } $data = []; try { $rpc = \Gini\ChemDB\Client::getRPC(); $result = $rpc->chemdb->searchChemicals($params); $chems = (array) $rpc->chemdb->getChemicals($result['token']); foreach ($chems as $chem) { $data[] = ['key' => $chem['cas_no'], 'value' => $chem['name']]; } } catch (\Exception $e) { } return \Gini\IoC::construct('\\Gini\\CGI\\Response\\JSON', $data); }