feat: initial commit - lightweight ticket system with Flask+SQLite

Features:
- User authentication (login/register)
- Ticket CRUD with status/priority/category
- Rich text description with paste-to-image
- File attachment upload (images/documents)
- Multi-select CC recipients
- Role-based permission control (admin/user)
- In-app notifications
- Statistics dashboard
- Gunicorn production deployment
This commit is contained in:
AI Agent
2026-07-02 15:31:27 +08:00
commit 26940c4574
14 changed files with 2497 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}工单系统{% endblock %}</title>
<link rel="stylesheet" href="/static/style.css">
</head>
<body>
<nav class="navbar">
<div class="nav-brand"><a href="/">📋 工单系统</a></div>
<div class="nav-links">
<a href="/" class="nav-link{% if request.path == '/' %} active{% endif %}">看板</a>
<a href="/tickets" class="nav-link{% if '/tickets' in request.path and '/ticket/' not in request.path %} active{% endif %}">工单列表</a>
<a href="/ticket/new" class="nav-link btn-new"> 新建工单</a>
<!-- 通知 -->
<a href="/notifications" class="nav-link notif-link">
🔔
{% if unread_count > 0 %}
<span class="notif-badge">{{ unread_count }}</span>
{% endif %}
</a>
<!-- 用户菜单 -->
{% if current_user %}
<span class="user-info">👤 {{ current_user.username }}</span>
<a href="/logout" class="nav-link">退出</a>
{% endif %}
</div>
</nav>
<main class="container">
{% block content %}{% endblock %}
</main>
<footer class="footer">
<p>轻量级工单系统 &middot; Flask + SQLite</p>
</footer>
</body>
</html>