Maison  >  Article  >  interface Web  >  Comment l'application Uniapp implémente la gestion des journaux de travail et des tâches

Comment l'application Uniapp implémente la gestion des journaux de travail et des tâches

PHPz
PHPzoriginal
2023-10-20 18:37:591016parcourir

Comment lapplication Uniapp implémente la gestion des journaux de travail et des tâches

Uniapp (cross-platform application development framework) est une option pour développer des applications mobiles. Les fonctions de journal de travail et de gestion des tâches dans Uniapp peuvent être implémentées à l'aide de Vue.js et de l'API backend.

Idée générale : tout d'abord, vous devez concevoir la structure de la table de la base de données, y compris la table des utilisateurs, la table des journaux et la table des tâches. Ensuite, créez une API back-end pour implémenter les fonctions d’authentification des utilisateurs et de journalisation, d’ajout de tâches, de suppression, de modification et de requête. Ensuite, interagissez avec l'API back-end via la page frontale d'Uniapp pour implémenter des fonctions spécifiques.

Ce qui suit est un exemple de code spécifique sur la façon d'implémenter les fonctions de journal de travail et de gestion des tâches.

  1. Structure de la table de base de données de conception :

Table utilisateur utilisateur : user

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);

日志表 log

CREATE TABLE `log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userId` int(11) NOT NULL,
  `content` text NOT NULL,
  `createTime` datetime NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE CASCADE
);

任务表 task

CREATE TABLE `task` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userId` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `deadline` date NOT NULL,
  `status` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE CASCADE
);

Table de journal log :
    const express = require('express');
    const bodyParser = require('body-parser');
    const mysql = require('mysql');
    const app = express();
    
    app.use(bodyParser.json());
    
    // 创建数据库连接
    const connection = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: 'password',
      database: 'your_database_name'
    });
    
    // 添加日志
    app.post('/api/log', (req, res) => {
      const { userId, content } = req.body;
      const createTime = new Date().toISOString().slice(0, 19).replace('T', ' ');
      const query = 'INSERT INTO log (userId, content, createTime) VALUES (?, ?, ?)';
      connection.query(query, [userId, content, createTime], (error, results) => {
        if (error) {
          console.log('Error:', error);
          res.status(500).json({ error: 'Failed to add log' });
        } else {
          res.json({ id: results.insertId });
        }
      });
    });
    
    // 其他API的实现类似,包括修改、删除和查询日志、任务等功能。
    
    app.listen(3000, () => {
      console.log('Server is running on port 3000');
    });
  1. Table des tâches tâche :
  2. <template>
      <div>
        <input v-model="logContent" type="text" placeholder="输入日志内容">
        <button @click="addLog">添加日志</button>
        <input v-model="taskTitle" type="text" placeholder="输入任务标题">
        <input v-model="taskDeadline" type="date" placeholder="选择任务截止日期">
        <button @click="addTask">添加任务</button>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          logContent: '',
          taskTitle: '',
          taskDeadline: ''
        };
      },
      methods: {
        addLog() {
          const userId = 1; // 当前登录的用户ID
          // 调用后端API添加日志
          uni.request({
            method: 'POST',
            url: 'http://localhost:3000/api/log',
            data: { userId: userId, content: this.logContent },
            success: (res) => {
              // 添加日志成功后的处理
              console.log('Add log success:', res);
            },
            fail: (err) => {
              console.error('Add log failed:', err);
            }
          });
        },
        addTask() {
          const userId = 1; // 当前登录的用户ID
          // 调用后端API添加任务
          uni.request({
            method: 'POST',
            url: 'http://localhost:3000/api/task',
            data: { userId: userId, title: this.taskTitle, deadline: this.taskDeadline },
            success: (res) => {
              // 添加任务成功后的处理
              console.log('Add task success:', res);
            },
            fail: (err) => {
              console.error('Add task failed:', err);
            }
          });
        }
      }
    };
    </script>

Créez une API back-end :

  1. Utilisez Node.js et le framework Express pour créer une API back-end afin de mettre en œuvre les fonctions d'authentification et de journalisation des utilisateurs, d'ajout de tâches, de suppression, de modification et de requête. Voici un exemple d'API pour ajouter des journaux :
  2. rrreee

Implémentation de la page frontale Uniapp :

Dans la page Uniapp, utilisez Vue.js pour implémenter la logique d'interaction frontale. Vous trouverez ci-dessous un exemple d'ajout de journaux et de tâches :

rrreee

Avec l'exemple de code ci-dessus, vous pouvez implémenter des fonctions de journal de travail et de gestion des tâches dans l'application Uniapp. Lorsque l'utilisateur saisit du contenu sur la page frontale et clique sur le bouton, l'API back-end sera appelée pour ajouter des données. Vous pouvez encore améliorer d'autres fonctions en fonction des besoins de l'entreprise, comme la suppression et la modification de journaux, de tâches, etc. 🎜🎜J'espère que cet article vous sera utile ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn