首页 > 其他分享 >电子公文传输系统-个人贡献

电子公文传输系统-个人贡献

时间:2023-12-01 23:12:46浏览次数:23  
标签:function 公文 表单 贡献 传输 html document event

个人完成的工作

博客内容撰写

1.团队展示

起队名,撰写本人队员风采

2.需求分析

撰写整篇博客

《需求规格说明书》

撰写引言

3.确定分工

修改完善上周提交的需求规格说明书,撰写上次《需求规格说明书》初稿的不足

4.描述设计

制作团队分工图,撰写工具选择

5.项目冲刺(1)

撰写整篇博客

5.项目冲刺(4)

撰写整篇博客

5.项目冲刺(5)

撰写整篇博客

程序代码编写

index.html
{% load static %}
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="csrf-token" content="{{ csrf_token }}">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>公文传输系统</title>
    <link rel="stylesheet" href="{% static 'css/style-syspage.css' %}">
    <link rel="stylesheet" href="{% static 'css/style-newnavi.css' %}">
    <link rel="stylesheet" href="{% static 'css/sidebarContainer.css' %}">
    <link rel="stylesheet" href="{% static 'css/homepage.css' %}">
    <link rel="stylesheet" href="{% static 'css/textmanagerpage.css' %}">
    <link rel="stylesheet" href="{% static 'css/textpage.css' %}">
    <link rel="stylesheet" href="{% static 'css/usermanagerpage.css' %}">
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.global.prod.js"></script>
    <!-- 在<head>标签中引入Quill.js的CSS文件 -->
    <link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">

    <!-- 在<body>标签中引入Quill.js的JavaScript文件 -->
    <script src="https://cdn.quilljs.com/1.3.6/quill.js"></script>
</head>
<body>
    <div>
        <div class="navbar-top">
            <div class="menu-content">
            <div class="menu-icon">&#9776;</div>
            <input type="text" class="search-box" placeholder="搜索...">
            <div class="user-info">
                <span class="help-button">帮助文档</span>
                <span class="user-name">您好 {{ username }}!</span>
                <input type="hidden" id="loggedInUserId" value="{{ user_id }}">
            </div>
        </div>
        </div>
        <div>
            <div class="navbar-left">
                <a href="/upload_avatar_page/">
                    <div class="Avatar">
                        <img src="{{ user_avatar_url }}" alt="User Avatar" class="user-avatar">
                    </div>
                </a>
                <div class="sys">
                    公文传输系统
                </div>
                <div class="nav-links">
                <!-- 在左侧导航栏的每个功能键上添加@click事件处理程序 -->
                <a href="#" class="tab-button" @click="handleTabClick('首页')" data-page="homePage">首页</a>
                <a href="#" class="tab-button" @click="handleTabClick('公文管理')" data-page="documentManagementPage">公文管理</a>
                <a href="#" class="tab-button" @click="handleTabClick('公文审核')" data-page="documentReviewPage">公文审核</a>
                <a href="#" class="tab-button" @click="handleTabClick('公文草拟')" data-page="documentDraftPage">公文草拟</a>
                <a href="#" class="tab-button" @click="handleTabClick('用户管理')" data-page="userManagementPage">用户管理</a>
                <a href="#" class="tab-button" @click="handleTabClick('日志管理')" data-page="logManagementPage">日志管理</a>
                </div>
                <a href="#" class="quit" id="logoutButton">
                    退出系统
                </a>
            </div>
            <div id="sidebarContainer"></div>
        </div>
    </div>

    <script src="{% static 'js/main.js' %}"></script>
    <script>
        window.accessLevel = {{ access_level|default_if_none:0 }};
        const logoutButton = document.getElementById('logoutButton');

        logoutButton.addEventListener('click', (event) => {
            event.preventDefault();

            fetch('/logout/', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRFToken': getCookie('csrftoken') // 替换为获取CSRF令牌的函数,这是一个示例
                },
                // ...其他请求数据
            })
            .then(response => {
                if (response.redirected) {
                    // 延迟3秒后执行重定向
                    setTimeout(() => {
                        window.location.href = response.url; // 重定向到指定页面
                    }, 3000); // 3000毫秒 = 3秒
                }
            })
            .catch(error => {
                console.error('退出时出错:', error);
            });
        });

        function getCookie(name) {
            const cookieValue = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
            return cookieValue ? cookieValue.pop() : '';
        }
    </script>
</body>
</html>
adduser.html
<!-- adduser.html -->
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>新增用户</title>
    <link rel="stylesheet" href="{% static 'css/adduserpage.css' %}">
    <!-- 此处包含您的样式表或其他资源 -->
</head>
<body>
    <h1>新增用户</h1>
    <form method="post" action="{% url 'create_user' %}">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">确认</button>
        <a href="{% url 'index' %}">取消</a>
    </form>
    <script src="{% static 'js/verify_up.js' %}"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            document.querySelector('form').addEventListener('submit', function(event) {
                event.preventDefault(); // 阻止表单默认提交行为

                // 提交表单后,等待 3 秒后跳转到 index 页面
                setTimeout(function() {
                    document.querySelector('form').submit(); // 提交表单
                }, 3000); // 等待 3 秒
            });
        });
    </script>
</body>
</html>
change_userinfo.html
{% load static %}
<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>修改用户信息</title>
    <link rel="stylesheet" href="{% static 'css/change_userinfo.css' %}">
    <!-- 此处包含您的样式表或其他资源 -->
</head>
<body>
    <h1>修改用户信息</h1>
    <form method="post" action="{% url 'change_userinfo' user_profile.id %}">
        {% csrf_token %}
        <label for="id">学号:</label>
        <input type="text" id="id" name="id" value="{{ user_profile.id }}" disabled><br><br>

        <label for="username">用户名:</label>
        <input type="text" id="username" name="username_up" value="{{ user_profile.username_up }}"><br><br>

        <label for="email">邮箱:</label>
        <input type="email" id="email" name="email" value="{{ user_profile.email }}"><br><br>

        <label for="password">密码:</label>
        <input type="password" id="password" name="password_up" value="{{ user_profile.password_up }}"><br><br>

        <!-- 如果还有其他字段需要修改,继续添加 -->

        <button type="submit">提交</button>
        <a href="{% url 'index' %}">取消</a>
    </form>
    <script src="{% static 'js/verify_up.js' %}"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            document.querySelector('form').addEventListener('submit', function(event) {
                event.preventDefault(); // 阻止表单默认提交行为

                // 提交表单后,等待 3 秒后跳转到 index 页面
                setTimeout(function() {
                    document.querySelector('form').submit(); // 提交表单
                }, 3000); // 等待 3 秒
            });
        });
    </script>
</body>
</html>
login.html
{% load static %}
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <link href="{% static 'images/icon.ico' %}" rel="icon" type="icon">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>公文传输系统登录界面</title>
    <link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>
<body>
    <section>
        <div class="login">
            <h2>登录界面</h2>
            <div class="innner">
                <!-- 登录 -->
                <div class="container__form container--sign">
                    <form action="{% url 'login' %}" class="form" id="form1" onsubmit="return validateForm_in()" name="signin" method="post">
                    {% csrf_token %}
                    <input type="text" placeholder="学号(8位)或用户名" name="id_in" class="input" />
                    <input type="password" placeholder="密码(6-16位字母、数字或下划线)" name="password_in" class="input" />
                    <input type="submit" value="登录" id="btn">
                    {% if messages %}
                    <ul class="messages">
                        {% for message in messages %}
                            <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
                        {% endfor %}
                    </ul>
                    {% endif %}
                    </form>
                </div>
                <div class="group">
                    <a href="#">忘记密码?</a>
                    <a href="{% url 'register' %}">还没有账号?赶紧注册</a>
                </div>
            </div>
        </div>

    </section>

    <script src="{% static 'js/verify_in.js' %}"></script>
</body>
</html>
manage_permission.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户权限管理</title>
    <link href="../static/images/icon.ico" rel="icon" type="icon">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="{% static 'css/manage.css' %}">
</head>
<body>
    <h1>用户权限管理</h1>
    <p>用户 ID: {{ user.id }}</p>
    <p>用户名: {{ user.username_up }}</p>
    <p>邮箱: {{ user.email }}</p>
    <p>密码: {{ user.password_up }}</p>

    <form method="post" action="{% url 'manage_permission' user.id %}">
        {% csrf_token %}
        <label for="accessLevel">访问权限:</label>
        <select id="accessLevel" name="access_level">
            <option value="0" {% if user.access_level == 0 %} selected {% endif %}>0</option>
            <option value="1" {% if user.access_level == 1 %} selected {% endif %}>1</option>
            <option value="2" {% if user.access_level == 2 %} selected {% endif %}>2</option>
            <option value="3" {% if user.access_level == 3 %} selected {% endif %}>3</option>
        </select>

        <button type="submit">保存权限</button>
        <a href="{% url 'index' %}">取消</a>

        <!-- 提示用户权限含义 -->
        <p>
            0: 普通用户<br>
            1: 管理员<br>
            2: 不能发送公文的普通用户<br>
            3: 黑名单用户,无法进行任何操作
        </p>
    </form>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            document.querySelector('form').addEventListener('submit', function(event) {
                event.preventDefault(); // 阻止表单默认提交行为

                // 提交表单后,等待 3 秒后跳转到 index 页面
                setTimeout(function() {
                    document.querySelector('form').submit(); // 提交表单
                }, 3000); // 等待 3 秒
            });
        });
    </script>
</body>
</html>
register.html
{% load static %}
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <link href="{% static 'images/icon.ico' %}" rel="icon" type="icon">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注册账户</title>
    <link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>
<body>
    <section>
        <div class="login">
            <h2>注册界面</h2>
            <div class="innner">
                 <!-- 注册 -->
                <div class="container__form container--signup">
                   <form action="{% url 'register' %}" class="form" id="form1" onsubmit="return validateForm_up()" name="signup" method="post">
                        {% csrf_token %}
                        <input type="text" placeholder="学号(8位)" name="id" class="input" />
                        <input type="text" placeholder="用户名(6-16位字母、数字或下划线)" name="username_up" class="input" />
                        <input type="email" placeholder="邮箱" name="email" class="input" />
                        <input type="password" placeholder="密码(6-16位字母、数字或下划线)" name="password_up" class="input" />
                        <input type="submit" value="注册" id="btn">
                        {% if messages %}
                        <ul class="messages">
                            {% for message in messages %}
                                <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
                            {% endfor %}
                        </ul>
                        {% endif %}
                    </form>
                </div>
                <div class="group">
                    <a>已经有账户了?点击右边登录</a>
                    <a href="{% url 'login' %}">登录</a>
                </div>
            </div>
        </div>
    </section>

    <script src="{% static 'js/verify_up.js' %}"></script>
</body>
</html>
upload_avatar.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传用户头像</title>
</head>
<body>
    <form id="avatarUploadForm" action="/upload_avatar/" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <input type="file" name="avatarFile" accept="image/*">
        <input type="submit" value="上传头像">
    </form>
</body>
</html>

其它

制作《需求规格说明书》PDF版

https://pan.baidu.com/s/1mgPEos-gnwcpqicpAvJyUw?pwd=hwkm

查找好用的绘图软件


上传代码到码云Gitee

系统测试

测试登录、注册、公文管理、公文审核、公文草拟、用户管理、日志管理等功能

统筹协调管理

作为组长,合理进行组内分工,及时提醒组员完成任务

代码

小组总共的代码行数

3900行

我贡献的代码行数

330行

相关链接

终版代码包:https://gitee.com/SHIBATORI/document-transmission-system/releases/tag/final_version

文档

小组总共的文档数

12篇

我贡献的文档数

4篇

相关链接

2.需求分析:https://www.cnblogs.com/icdamlkn/p/17796703.html
5.项目冲刺(1):https://www.cnblogs.com/icdamlkn/p/17844488.html
5.项目冲刺(4):https://www.cnblogs.com/icdamlkn/p/17852482.html
5.项目冲刺(5):https://www.cnblogs.com/icdamlkn/p/17853272.html

标签:function,公文,表单,贡献,传输,html,document,event
From: https://www.cnblogs.com/zhouruiya/p/17869419.html

相关文章

  • 个人贡献
    个人贡献个人完成工作类图用例图后端构架设计部分前端开发sm2算法实现功能测试小组代码小组代码共3900行我完成409行https://gitee.com/SHIBATORI/document-transmission-system/tree/final_version小组文章小组共完成12篇文章我完成2篇项目冲刺2https://......
  • FTP替代系统:飞驰云联文件传输系统引领新时代
    作为知名的数据传输软件,FTP在全球范围内拥有大量的使用客户。尽管FTP文件传输协议在文件传输领域有着长久的历史,但在面对海量数据、复杂环境和实时性需求时,FTP的局限性日益凸显,传统的FTP文件传输方式由于其繁琐的设置和操作,以及在安全性、稳定性和效率方面的不足,已经无法满足现代......
  • CCF认证——202109-2 贡献的变化——差分维护,前缀和算答案
    https://www.acwing.com/problem/content/4010/http://118.190.20.162/view.page?gpid=T130脑子一热抱着玩的心态试了一下三分,当然炸了,就当初认识三分了。正解是考虑p的变化的影响,p变成p+1的时候,答案的值取决于p属于相邻递增数对的值域区间的数量。也可以考虑递减的情况,两......
  • 网络音频传输模块有什么用
    网络音频传输模块是一种用于将音频信号通过网络进行传输的设备或模块。它在多个应用领域中发挥重要作用,提供了许多便利和灵活性。以下是网络音频传输模块的一些常见用途:音频流媒体服务:网络音频传输模块可以用于支持音频流媒体服务,允许用户通过互联网即时播放音频内容,如音乐、......
  • 音频网络传输模块
    广州新悦SIP2402V音频网络传输模块具备对SIP协议的全面支持,为用户提供高度可靠和灵活的通信解决方案。其功放输出可选择2*15W或1*40W,确保在不同环境中的音频传输效果。系统还引入了低成本网络音频播放模块,适用于多种场景的语音对讲系统,既满足通信需求又降低了整体成本。 模块......
  • 本地Linux 服务器实现公网SFTP远程传输文件(小白教程)
    简单几步实现使用SFTP结合cpolar工具实现远程Linux服务器传输文件1.查看局域网IP地址检查Linux局域网IP地址,我们输入:ipaddress然后即可看到设备的局域网IP地址2.局域网测试连接我们打开连接工具,这里使用winSCP连接测试,协议选择SFTP,输入上面查看的ip地址,端口号默认......
  • FPGA 实现SPI 主机双工通信 CS前后肩可调 操作时钟频率可调 ,SPI模式可调,传输位宽可
    1//testbench2`timescale1ns/1ns3modulelcd_spi_m_tb();4regrst_n_i;5regspi_clkx_i;6reg[31:0]spi_data_i;7regspi_start;8regspi_miso_r1,spi_miso_r2;9wirespi_miso_i;10wire[0:0]spi_done;11wir......
  • RF传输距离是如何影响无线通信的?
    RF传输距离对无线通信的影响主要表现在以下几个方面:1、信号衰减:随着传输距离的增加,信号强度会逐渐衰减。这是因为在传输过程中,信号会受到各种因素的影响,如空气中的吸收、障碍物的阻挡等,导致信号强度逐渐减弱。2、多径效应:在无线通信中,信号的传输路径往往不是单一的,而是通过多个路......
  • RF传输距离是如何影响无线通信的?
    RF传输距离对无线通信的影响主要表现在以下几个方面:1、信号衰减:随着传输距离的增加,信号强度会逐渐衰减。这是因为在传输过程中,信号会受到各种因素的影响,如空气中的吸收、障碍物的阻挡等,导致信号强度逐渐减弱。2、多径效应:在无线通信中,信号的传输路径往往不是单一的,而是通过多个路径......
  • Redis深入理解-内核请求处理流程、数据传输协议
    Redis内核级请求处理流程RedisServer其实就是Linux服务器中的一个进程主要还是下图的流程应用先和server端建立TCP连接建立连接之后,server端就会有一个与该客户端通信的socket,客户端的读写请求发送到服务端的socket那么通过IO多路复用,收到读写请求的socket会到队列......