Files
FileCollect/原型/index.html
T
2025-10-20 07:11:14 +08:00

289 lines
12 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片收集小程序 - 原型汇总</title>
<!-- 引入Vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js"></script>
<!-- 引入Element UI CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.15.8/lib/theme-chalk/index.css">
<!-- 引入Element UI JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/element-ui@2.15.8/lib/index.js"></script>
<!-- 引入Font Awesome -->
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
body {
margin: 0;
padding: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}
.preview-container {
height: 70vh;
width: 100%;
border: 1px solid #e4e7ed;
border-radius: 4px;
overflow: hidden;
}
.preview-container iframe {
width: 100%;
height: 100%;
border: none;
}
.nav-item {
cursor: pointer;
padding: 10px;
border-radius: 4px;
transition: all 0.3s;
}
.nav-item:hover {
background-color: #f5f7fa;
}
.nav-item.active {
background-color: #ecf5ff;
color: #1989fa;
}
.role-badge {
margin-left: 5px;
}
</style>
</head>
<body>
<div id="app">
<el-container style="min-height: 100vh;">
<el-header style="background-color: #1989fa; color: white;">
<div style="display: flex; justify-content: space-between; align-items: center;">
<h1 style="margin: 0; font-size: 20px;">图片收集小程序界面原型</h1>
<div>
<el-tag type="success">版本 1.0</el-tag>
</div>
</div>
</el-header>
<el-container>
<el-aside width="250px" style="background-color: #f5f7fa; padding: 20px;">
<el-card>
<template #header>
<div class="card-header">
<span>页面导航</span>
</div>
</template>
<div style="margin-bottom: 20px;">
<h3 style="font-size: 16px; margin-bottom: 10px;">小程序页面</h3>
<div class="nav-item" :class="{active: activePage === 'login'}" @click="openPage('login')">
<i class="fa fa-sign-in mr-2"></i>登录页
</div>
<div class="nav-item" :class="{active: activePage === 'user-home'}" @click="openPage('user-home')">
<i class="fa fa-home mr-2"></i>普通用户首页
<el-tag size="small" type="primary" class="role-badge">用户</el-tag>
</div>
<div class="nav-item" :class="{active: activePage === 'dept-home'}" @click="openPage('dept-home')">
<i class="fa fa-home mr-2"></i>部门负责人首页
<el-tag size="small" type="warning" class="role-badge">部门</el-tag>
</div>
<div class="nav-item" :class="{active: activePage === 'admin-home'}" @click="openPage('admin-home')">
<i class="fa fa-home mr-2"></i>管理员/信息员首页
<el-tag size="small" type="danger" class="role-badge">管理员</el-tag>
</div>
<div class="nav-item" :class="{active: activePage === 'image-upload'}" @click="openPage('image-upload')">
<i class="fa fa-upload mr-2"></i>上传页
</div>
<div class="nav-item" :class="{active: activePage === 'image-detail'}" @click="openPage('image-detail')">
<i class="fa fa-image mr-2"></i>图片详情页
</div>
<div class="nav-item" :class="{active: activePage === 'message-list'}" @click="openPage('message-list')">
<i class="fa fa-list mr-2"></i>消息列表页
</div>
</div>
<div>
<h3 style="font-size: 16px; margin-bottom: 10px;">后台管理页面</h3>
<div class="nav-item" :class="{active: activePage === 'user-management'}" @click="openPage('后台管理页面/user-management')">
<i class="fa fa-users mr-2"></i>用户管理
</div>
<div class="nav-item" :class="{active: activePage === 'department-management'}" @click="openPage('后台管理页面/department-management')">
<i class="fa fa-building mr-2"></i>部门管理
</div>
<div class="nav-item" :class="{active: activePage === 'image-management'}" @click="openPage('后台管理页面/image-management')">
<i class="fa fa-picture-o mr-2"></i>图片管理
</div>
<div class="nav-item" :class="{active: activePage === 'task-management'}" @click="openPage('后台管理页面/task-management')">
<i class="fa fa-tasks mr-2"></i>任务管理
</div>
</div>
</el-card>
<el-card style="margin-top: 20px;">
<template #header>
<div class="card-header">
<span>用户角色说明</span>
</div>
</template>
<el-table :data="roles" style="width: 100%;">
<el-table-column prop="name" label="角色" width="80"></el-table-column>
<el-table-column prop="description" label="描述"></el-table-column>
</el-table>
</el-card>
</el-aside>
<el-main>
<el-card>
<template #header>
<div class="card-header">
<span>{{ currentPageTitle }}</span>
<el-button type="text" @click="refreshPreview" size="small">
<i class="fa fa-refresh"></i> 刷新
</el-button>
</div>
</template>
<div class="preview-container">
<iframe :src="currentPageUrl" ref="previewFrame"></iframe>
</div>
<div style="margin-top: 20px;">
<h3 style="font-size: 16px; margin-bottom: 10px;">页面说明</h3>
<el-descriptions :column="1" border>
<el-descriptions-item label="页面名称">{{ currentPageTitle }}</el-descriptions-item>
<el-descriptions-item label="文件路径">{{ currentPageUrl }}</el-descriptions-item>
<el-descriptions-item label="功能描述">{{ currentPageDescription }}</el-descriptions-item>
<el-descriptions-item label="适用角色">{{ currentPageRoles }}</el-descriptions-item>
</el-descriptions>
</div>
</el-card>
<el-card style="margin-top: 20px;">
<template #header>
<div class="card-header">
<span>更新日志</span>
</div>
</template>
<el-timeline>
<el-timeline-item timestamp="2023-10-01" placement="top">
<el-card>
<h4>版本 1.0</h4>
<p>初始原型版本,使用Element UI实现所有页面</p>
</el-card>
</el-timeline-item>
</el-timeline>
</el-card>
</el-main>
</el-container>
<el-footer style="text-align: center; padding: 20px; background-color: #f5f7fa;">
<p>© 2023 图片收集小程序原型设计</p>
</el-footer>
</el-container>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
activePage: 'login',
currentPageUrl: '小程序页面/login.html',
currentPageTitle: '登录页',
currentPageDescription: '用户登录入口,支持手机号验证码登录',
currentPageRoles: '所有用户',
roles: [
{
name: '管理员',
description: '系统最高权限,管理用户、部门、任务等'
},
{
name: '信息员',
description: '管理任务,查看统计数据'
},
{
name: '部门负责人',
description: '审核部门内图片,查看部门数据'
},
{
name: '普通用户',
description: '上传图片,查看分配任务'
}
],
pageInfo: {
'login': {
title: '登录页',
description: '用户登录入口,支持手机号验证码登录',
roles: '所有用户'
},
'user-home': {
title: '普通用户首页',
description: '显示待完成任务、已上传图片列表和快速上传入口',
roles: '普通用户'
},
'dept-home': {
title: '部门负责人首页',
description: '显示部门待审核图片、部门统计和部门切换功能',
roles: '部门负责人'
},
'admin-home': {
title: '管理员/信息员首页',
description: '显示待处理任务、统计图表和任务进度查询入口',
roles: '管理员、信息员'
},
'image-upload': {
title: '上传页',
description: '支持图片选择、预览、信息填写和提交',
roles: '普通用户'
},
'image-detail': {
title: '图片详情页',
description: '显示图片大图、详细信息和操作按钮',
roles: '所有用户(权限不同显示不同操作)'
},
'message-list': {
title: '消息列表页',
description: '显示系统通知和消息',
roles: '所有用户'
},
'后台管理页面/user-management': {
title: '用户管理',
description: '管理系统用户,包括增删改查和角色分配',
roles: '管理员'
},
'后台管理页面/department-management': {
title: '部门管理',
description: '管理部门结构,支持部门树形展示和编辑',
roles: '管理员'
},
'后台管理页面/image-management': {
title: '图片管理',
description: '管理所有上传的图片,支持搜索、筛选和批量操作',
roles: '管理员、信息员'
},
'后台管理页面/task-management': {
title: '任务管理',
description: '管理系统任务,支持创建、编辑、删除和进度查询',
roles: '管理员、信息员'
}
}
}
},
methods: {
openPage(page) {
this.activePage = page;
this.currentPageUrl = page.includes('后台管理页面') ? page + '.html' : '小程序页面/' + page + '.html';
if (this.pageInfo[page]) {
this.currentPageTitle = this.pageInfo[page].title;
this.currentPageDescription = this.pageInfo[page].description;
this.currentPageRoles = this.pageInfo[page].roles;
}
},
refreshPreview() {
this.$refs.previewFrame.src = this.currentPageUrl;
}
},
mounted() {
// 确保所有原型文件都已创建
console.log('图片收集小程序原型汇总页面加载完成');
}
})
</script>
</body>
</html>