| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | <?php/** * Created by PhpStorm. * User: 中闽 < 1464674022@qq.com > * Date: 2020/2/4 * Time: 12:47 */namespace app\common\model;use think\Model;class Config extends Model{    protected $autoWriteTimestamp = false;    const STATUS_OPEN = 1;//开启    const STATUS_CLOSE = 0;//关闭    const TYPE_INPUT = 0;//输入型配置    const TYPE_SELECT = 1;//多选    const TYPE_RADIO = 2;//单选    const TYPES = [        self::TYPE_INPUT => '输入型配置',        self::TYPE_SELECT => '多选配置',        self::TYPE_RADIO => '单选配置',    ];    //value_text    public function getValueTextAttr($value, $data)    {        if ($this->getData('type') == self::TYPE_INPUT) {            return $this->value;        } elseif ($this->getData('type') == self::TYPE_SELECT) {            $count = (new ConfigOption())->where('pid', $this->id)->where('status', ConfigOption::STATUS_OPEN)->count();            return $count . "个" . $data['name'];        } elseif ($this->getData('type') == self::TYPE_RADIO) {            return (new ConfigOption())->where('pid', $this->id)->where('single_status', ConfigOption::STATUS_OPEN)->column('name');        } else {            return '';        }    }    //type_text    public function getTypeTextAttr($value, $data)    {        return self::TYPES[$this->getData('type')];    }    //tab_text    public function getTabTextAttr($value, $data)    {        if (!$this->tab) {            return "";        } else {            return $this->tab->getData('name')??'';        }    }    //image_open    public function getImageOpenAttr($value, $data)    {        return $value == 1 ? true : false;    }    //color_open    public function getColorOpenAttr($value, $data)    {        return $value == 1 ? true : false;    }    //image_label    public function getImageLabelAttr($value, $data)    {        return $value ?: '配图';    }    //color_label    public function getColorLabelAttr($value, $data)    {        return $value ?: "配色";    }    //name_label    public function getNameLabelAttr($value, $data)    {        return $value ?: '名称';    }    //value_label    public function getValueLabelAttr($value, $data)    {        return $value ?: '配置值';    }    //desc_label    public function getDescLabelAttr($value, $data)    {        return $value ?: '备注';    }    //如果remark是json格式,用此方法获取对象    public function getJsonConfig()    {        $config = json_decode($this->remark, true);        return is_array($config) ? $config : [];    }    //关联标签    public function tab()    {        return $this->belongsTo('ConfigTab', 'tab_id');    }}
 |