O framework fastadmin implementa a classificação em árvore e resolve o problema da exibição imprecisa da classificação da página de edição e o problema da estrutura de classificação

Este projeto usa a classificação em forma de árvore que vem com fastadmin. Se você pegá-la e usá-la diretamente, os seguintes problemas ocorrerão:
1. Símbolos não compilados aparecerão na página de lista de classificação de back-end
2. A página de edição mostrará que a classificação exibida não está correta. E a estrutura é caótica

Em primeiro lugar, vamos resolver o primeiro problema relativamente simples. Aqui estão duas soluções:
Primeiro: diretamente na categoria js correspondente, adicione escape:false,os símbolos especiais da página de lista para que não haja nenhum símbolo especial;
segundo: na classe da árvore Substitua por  outros símbolos que não precisam de escape, como-e semelhantes; a localização do arquivo do tipo de árvore está em extend/fast/Tree.php;

Em segundo lugar, resolveremos o problema de classificação incorreta de exibição e confusão de estrutura na página de edição: a
página de adição é exibida normalmente. Para não afetar a página de adição, criamos um novo método no controlador correspondente para chamadas de página de edição. O
padrão é indexMétodo, criamos um novo idnex2método, o código é o seguinte:

/**
     * 查看
     */
    public function index2()
    {
    
    
        //设置过滤方法
        $this->request->filter(['strip_tags']);
        if ($this->request->isAjax()) {
    
    
            $search = $this->request->request("search");
            $type = $this->request->request("type");
            $keyValue = $this->request->request("keyValue",'');
            $keyField = $this->request->request("keyField");
            if($keyField=='id' && $keyValue){
    
    
                $list=db('itemclass')->where('id',$keyValue)->select();
                $total = count($list);
                $result = array("total" => $total, "rows" => $list);

                return json($result);
            }
            //构造父类select列表选项数据
            $list = [];

            foreach ($this->categorylist as $k => $v) {
    
    
                if ($search) {
    
    
                    if (stripos($v['name'], $search) !== false) {
    
    
                        $list[] = $v;
                    }
                } else {
    
    
                    $list = $this->categorylist;
                }
            }
            $total = count($list);
            $result = array("total" => $total, "rows" => $list);

            return json($result);
        }
        return $this->view->fetch();
    }

Em seguida, chame este método na página de edição correspondente

<div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Class_id')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-class_id" data-rule="required" data-source="class/index2" class="form-control selectpage" name="row[class_id]" type="text" value="{$row.class_id|htmlentities}">
        </div>
</div>

Desta forma, a página de edição pode exibir a classificação correta e o estilo de classificação apresenta uma estrutura em árvore.

Acho que você gosta

Origin blog.csdn.net/qq_36129701/article/details/106687774
Recomendado
Clasificación