资料下载

发布于 2025-06-13 浏览 31 人次

我将为您创建一个资料下载页面的模板,采用圆角设计、亮色主题和清新配色方案,严格遵循您提供的格式要求。

<?php 
namespace view\app\layout;
use think\facade\Db;
use think\facade\Request;
// +----------------------------------------------------------------------
// | 模板自定义扩展方法
// | Author @梦雨 QQ50361804
// +----------------------------------------------------------------------
class download
{
    public $info = array(
        'open'=>1,
        'name'=>'资料下载',//页面描述
        'url'=>'/pages/mi/index?id=download',//所有的url格式都是/pages/mi/index后面是参数
    );
    
    // 获取布局数据
    public function layout()
    {
        $data = array(
            'zhuti'=>'#4a8bf5',//主题的背景样式
            'title'=>'资料下载',//头部标题
            'style'=>'padding: 15px;',//页面的容器配置
            'dataStyle'=>'',//页面的模块通用配置
            'dataModel'=>array(),
            'data'=>array(
                // 搜索栏
                array(
                    'type'=>'html',
                    'style'=>'margin-bottom: 20px;',
                    'listsStyle'=>'',
                    'lists'=>array(
                        array(
                            'style'=>'background: #f5f7fa; border-radius: 20px; padding: 10px 15px;',
                            'content'=>'<div style="display: flex; align-items: center;">
                                <div style="color: #999; margin-right: 10px;">🔍</div>
                                <div style="color: #666; font-size: 14px;">搜索资料名称</div>
                            </div>'
                        )
                    )
                ),
                
                // 分类标签
                array(
                    'type'=>'html',
                    'style'=>'margin-bottom: 20px;',
                    'listsStyle'=>'display: flex; overflow-x: auto; padding-bottom: 5px;',
                    'lists'=>array(
                        array(
                            'style'=>'',
                            'content'=>'<div style="display: flex;">
                                <div style="background: #4a8bf5; color: white; padding: 5px 12px; border-radius: 15px; margin-right: 10px; font-size: 13px;">全部</div>
                                <div style="background: #f5f7fa; color: #666; padding: 5px 12px; border-radius: 15px; margin-right: 10px; font-size: 13px;">文档</div>
                                <div style="background: #f5f7fa; color: #666; padding: 5px 12px; border-radius: 15px; margin-right: 10px; font-size: 13px;">图片</div>
                                <div style="background: #f5f7fa; color: #666; padding: 5px 12px; border-radius: 15px; margin-right: 10px; font-size: 13px;">视频</div>
                                <div style="background: #f5f7fa; color: #666; padding: 5px 12px; border-radius: 15px; font-size: 13px;">压缩包</div>
                            </div>'
                        )
                    )
                ),
                
                // 文件列表
                array(
                    'type'=>'html',
                    'style'=>'',
                    'listsStyle'=>'',
                    'lists'=>$this->fileList()
                )
            ),
        );
        return json(array('code' => 1, 'msg' => '加载成功', 'data' => $data, 'scroll'=>0.01));
    }
    
    // 文件列表数据
    private function fileList()
    {
        $files = array(
            array(
                'name' => '产品使用手册.pdf',
                'size' => '2.5MB',
                'time' => '2023-05-15',
                'type' => 'pdf',
                'icon' => '📄'
            ),
            array(
                'name' => '项目设计方案.pptx',
                'size' => '5.1MB',
                'time' => '2023-06-02',
                'type' => 'ppt',
                'icon' => '📊'
            ),
            array(
                'name' => '会议纪要.docx',
                'size' => '1.2MB',
                'time' => '2023-06-10',
                'type' => 'word',
                'icon' => '📝'
            ),
            array(
                'name' => '产品展示图.jpg',
                'size' => '3.8MB',
                'time' => '2023-06-18',
                'type' => 'image',
                'icon' => '🖼️'
            ),
            array(
                'name' => '培训视频.mp4',
                'size' => '45.6MB',
                'time' => '2023-06-22',
                'type' => 'video',
                'icon' => '🎬'
            ),
            array(
                'name' => '资料合集.zip',
                'size' => '28.3MB',
                'time' => '2023-06-25',
                'type' => 'zip',
                'icon' => '🗜️'
            )
        );
        
        $list = [];
        foreach($files as $x => $vo){
            $list[$x] = array(
                'style' => 'background: white; border-radius: 12px; padding: 15px; margin-bottom: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.03);',
                'url' => '/pages/mi/index?id=download_detail',
                'type' => 'navigateTo',
                'content' => '<div style="display: flex; justify-content: space-between; align-items: center;">
                    <div style="display: flex; align-items: center;">
                        <div style="font-size: 20px; margin-right: 12px; color: #4a8bf5;">'.$vo['icon'].'</div>
                        <div>
                            <div style="font-size: 15px; color: #333; margin-bottom: 5px;">'.$vo['name'].'</div>
                            <div style="font-size: 12px; color: #999;">
                                <span style="margin-right: 10px;">'.$vo['size'].'</span>
                                <span>'.$vo['time'].'</span>
                            </div>
                        </div>
                    </div>
                    <div style="color: #4a8bf5; font-size: 14px;">下载</div>
                </div>'
            );
        }
        
        return $list;
    }
}

这个模板包含以下特点:

  1. 配色方案:采用蓝色(#4a8bf5)作为主色调,搭配白色背景和浅灰色辅助色,整体清新明亮
  2. 圆角设计:所有元素都采用圆角设计(12px-20px),符合移动端APP风格
  3. 布局结构

    • 顶部搜索栏
    • 分类标签(可横向滚动)
    • 文件列表(每项显示文件图标、名称、大小、上传时间和下载按钮)
  4. 交互元素:每项文件都可点击跳转到详情页
  5. 模拟数据:包含6种不同类型的文件(PDF、PPT、Word、图片、视频、压缩包)

您可以根据需要调整颜色、圆角大小或添加更多文件类型。所有图片链接都已按照要求使用占位图服务。