translations=$props['translations']; unset($props['translations']); } $this->data['props'] = $props; $this->data['rule'] = []; $this->data['form'] = []; } public function setTranslations(bool $state=true){ $this->translations=$state; return $this; } /** * 向审核表单中添加字段 * * @param string $field 字段名 * @param string $title 字段标题 * @param string $component 组件名,ElementUI不含"el-"前缀组件名,例如: input,自定义组件:bundle:附件库 * @param mixed $extra 额外参数 * @param mixed $extra.options 子选项数据, 例如: [['label' => '选项1', 'value' => 1], ['label' => '选项2', 'value' => 2]] * @param mixed $extra.props 组件属性, 例如: ['placeholder' => '请输入内容'] * @param mixed $extra.subProps 子组件选项属性,和$extra.props类似 * @param mixed $extra.children 插槽内容,['default' => '内容']或['default' => ComponentBuilder ] * @param mixed $extra.prompt 提示信息, 详见 \app\expose\build\builder\ComponentBuilder * @return ExamineBuilder */ public function add(string $field, string $title, string $component, mixed $extra = []): ExamineBuilder { $title = $this->trans($title); $this->data['rule'][] = [ 'field' => $field, 'title' => $title, 'component' => $component, 'extra' => $extra ]; return $this; } /** * 从审核表单中移除字段 * * @param string $field 字段名 * @return ExamineBuilder */ public function remove(string $field): ExamineBuilder { $rule = array_filter($this->data['rule'], function ($item) use ($field) { return $item['field'] != $field; }); $this->data['rule'] = array_values($rule); return $this; } /** * 设置审核原始对比数据 * * @param array $data 数据 * @return ExamineBuilder */ public function setOldData(array $data): ExamineBuilder { $this->data['old']=$data; return $this; } /** * 设置审核最新对比数据 * * @param array $data 数据 * @return ExamineBuilder */ public function setNewData(array $data): ExamineBuilder { $this->data['new']=$data; return $this; } public function addForm(FormBuilder $builder) { $this->data['form']=$builder; } public function trans(string|null $val,array $parameters =[]) { if(!$val||!$this->translations){ return $val; } $request=request(); $lang = ''; $domain=null; if ($request && $request->lang) { $lang = $request->lang; $domain=$request->app; } return trans($val,$parameters,$domain,$lang); } }