1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace addons\qingdongams\model;
- use think\Exception;
- use think\Model;
- use think\Session;
- /**
- * 配置模型
- */
- class Field extends Model
- {
- // 表名,不含前缀
- protected $name = 'qingdongams_field';
- // 自动写入时间戳字段
- protected $autoWriteTimestamp = false;
- // 定义时间戳字段名
- protected $createTime = false;
- protected $updateTime = false;
- //获取字段
- public static function getField($name,$type=null)
- {
- $where = [];
- if($type){
- $where['type'] = $type;
- }
- $data=self::where($where)->where(['name' => $name])->value('data');
- if(empty($data)){
- return [];
- }
- return json_decode($data,true);
- }
- //修改字段
- public function fields()
- {
- return $this->hasOne(self::class, 'type', 'type')->field('type,data');
- }
- //设置form 表单选项
- public function setFormField($type, $data)
- {
- $insertAll = [];
- foreach ($data as $v) {
- if ($v['component'] == 'select') {
- $insertAll[] = [
- 'type' => $type,
- 'name' => $v['config']['label'],
- 'data' => json_encode($this->getDataFields($v['config']['content']), JSON_UNESCAPED_UNICODE)
- ];
- }
- }
- $model = new self;
- $model->where(['type' => $type])->delete();
- if(empty($insertAll)){
- return true;
- }
- if ($model->insertAll($insertAll) == false) {
- throw new Exception('新增表单失败');
- }
- return true;
- }
- //循环获取data里面的字段
- private function getDataFields($data, $fields = [])
- {
- foreach ($data as $v) {
- $fields[] = $v['label'];
- if (isset($v['children']) && $v['children']) {
- $fields = self::getDataFields($data['children'], $fields);
- }
- }
- return $fields;
- }
- }
|