El marco fastadmin implementa la clasificación de árbol y resuelve el problema de la visualización inexacta de la clasificación de la página de edición y el problema de la estructura de clasificación

Este proyecto usa la clasificación en forma de árbol que viene con fastadmin. Si lo toma y lo usa directamente, ocurrirán los siguientes problemas:
1. Los símbolos no compilados aparecerán en la página de la lista de clasificación de back-end
2. La página de edición mostrará que la clasificación mostrada no es correcta. Y la estructura es caótica

En primer lugar, resolveremos el primer problema relativamente simple. Aquí hay dos soluciones:
Primero: directamente en la categoría js correspondiente, agregue escape:false,los símbolos especiales de la página de lista para que no haya un símbolo especial;
segundo: en la clase de árbol reemplazar con  otros símbolos que no necesitan ser escapado, como por ejemplo-y similares; la ubicación del archivo del tipo de árbol se encuentra en extend/fast/Tree.php;

En segundo lugar, resolveremos el problema de la clasificación de visualización incorrecta y la confusión de la estructura en la página de edición: la
página de agregar se muestra normalmente. Para no afectar la página de agregar, creamos un nuevo método bajo el controlador correspondiente para editar las llamadas de la página. El
valor predeterminado es indexMétodo, creamos un nuevo idnex2método, el código es el siguiente:

/**
     * 查看
     */
    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();
    }

Luego llame a este método en la página de edición correspondiente

<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>

De esta manera, la página de edición puede mostrar la clasificación correcta y el estilo de clasificación presenta una estructura de árbol.

Supongo que te gusta

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