zoukankan      html  css  js  c++  java
  • 资金管理系统(带权限)

    资金管理系统(带权限)

    An application used nodejs,vue3,element-ui ヾ(@@)ノ

    项目地址:https://github.com/Allenem/CapitalManagementSystem

    一、快速开始

    git clone https://github.com/Allenem/CapitalManagementSystem.git
    
    npm install
    
    cd client
    
    npm install
    
    cd ../
    
    npm run dev
    

    服务端地址:http://localhost:5000, 客户端地址:http://localhost:8080

    二、文件结构说明

    1.结构树

    根目录下打开cmdpowershell运行tree /f命令生成

    .
    │  package-lock.json
    │  package.json
    │  README.md
    │  server.js
    │
    ├─client
    │  │  .gitignore
    │  │  babel.config.js
    │  │  package-lock.json
    │  │  package.json
    │  │  README.md
    │  │  vue.config.js
    │  │
    │  ├─public
    │  │  │  favicon.ico
    │  │  │  index.html
    │  │  │
    │  │  └─css
    │  │          reset.css
    │  │
    │  └─src
    │      │  App.vue
    │      │  http.js
    │      │  main.js
    │      │  router.js
    │      │  store.js
    │      │
    │      ├─assets
    │      │      403.png
    │      │      404.gif
    │      │      bg.jpg
    │      │      coin.png
    │      │      showcase.jpg
    │      │
    │      ├─components
    │      │      Dialog.vue
    │      │      HeadNav.vue
    │      │      LeftMenu.vue
    │      │
    │      └─views
    │              404.vue
    │              ChangeList.vue
    │              FundList.vue
    │              Home.vue
    │              Index.vue
    │              InfoShow.vue
    │              Login.vue
    │              Register.vue
    │              UserList.vue
    │
    ├─config
    │      keys.js
    │      passport.js
    │
    ├─effectImg
    │      ……
    │
    ├─models
    │      Profile.js
    │      User.js
    │
    └─routers
        └─api
                profiles.js
                users.js
    

    2.结构说明

    ①后端文件

    主文件

    server.js

    两个模型

    models/Profile.js

    models/User.js

    路由配置

    routers/api/profiles.js

    routers/api/users.js

    常量和token验证

    config/key

    config/passport

    ②前端文件

    vue默认配置

    client/vue.config.js

    入口文件

    client/public/index.html

    根组件

    client/src/App.vue

    路由配置

    client/src/router.js

    库的引用

    client/src/main.js

    loading,请求拦截,响应拦截

    client/src/http.js

    vuex存储

    client/src/store.js

    静态文件夹

    client/src/assets

    页面文件夹

    client/src/views

    组件文件夹

    client/src/components

    三、功能说明

    • [x] 后端users接口配置(注册、登录、获取)
    • [x] 后端profilss接口配置(查询全部,查询单个,增,改,删)
    • [x] 注册页面
    • [x] 登录页面
    • [x] 主页页面
    • [x] 资金流水页面
    • [ ] 修改记录页面
    • [x] 个人信息页面
    • [x] 全员信息页面
    • [x] 404页面

    四、效果展示

    test无身份,all为管理员

    注册页
    register

    登录页
    login

    主页
    home

    非管理员资金流水页
    employeefundlist

    非管理员资金流水页筛选
    employeefundlistsearch

    非管理员修改记录
    changelist

    非管理员个人信息页
    notmanagerinfoshow

    非管理员全员信息页
    employeeuserlist

    管理员资金流水页(5/page)
    managerfundlist5items

    管理员资金流水页(10/page)
    managerfundlist10items

    管理员资金流水页编辑
    managerfundlistedit

    管理员个人信息页
    managerinfoshow

    管理员全员信息页
    manageruserlist

    管理员全员信息筛选
    manageruserlistsearch

    五、接口说明

    用户部分

    1.users数据库测试

    接口地址:http://localhost:5000/api/users/test
    请求方式:get
    请求示例:Examples
    接口参数:
    1.请求参数说明:
    {
        
    }
    2.返回参数说明:
    {
      "msg":"users test api works"
    }
    

    2.用户注册

    接口地址:http://localhost:5000/api/users/register
    请求方式:post
    请求示例:Examples
    接口参数:
    1.请求参数说明:
    {
      "name": "test",
      "email": "test@test.com",
      "password": "123456",
      "identity": "manager"
    }
    2.返回参数说明:
    {
      "name": "test",
      "email": "test@test.com",
      "avatar": "xxx",
      "password": "123456",
      "identity": "manager"
    }
    

    3.用户登录

    接口地址:http://localhost:5000/api/users/login
    请求方式:post
    请求示例:Examples
    接口参数:
    返回参数说明:
    1.请求参数说明:
    {
      "email": "test@test.com", 
      "password": "123456",
    }
    2.返回参数说明:
    {
      "success": true,
      "token": "'Bearer'  + token"
    }
    

    4.获取当前用户

    接口地址:http://localhost:5000/api/users/current
    请求方式:get
    请求示例:Examples
    接口参数:
    返回参数说明:
    1.请求参数说明:
    {
      
    }
    2.返回参数说明:
    {
      "id": "qwertyuiopasdfghjklcvbnm",
      "name": "test",
      "email": "test@test.com",
      "identity": "manager"
    }
    

    5.获取所有用户信息

    接口地址:http://localhost:5000/api/users/
    请求方式:get
    请求示例:Examples
    接口参数:
    返回参数说明:
    1.请求参数说明:
    {
      
    }
    2.返回参数说明:
    {
    "user":
    [
        {
            "_id": "5d320d3bb77a763724d503d9",
            "name": "test",
            "email": "test@gmail.com",
            "avatar": "//www.gravatar.com/avatar/1aedb8d9dc4751e229a335e371db8058?s=200&r=pg&d=mm",
            "password": "$2b$10$TBjcpQBI2hsXfZMB5DKzXuQBeevJI7mc7GuootkbwscUT9A/wiI6S",
            "date": "2019-07-19T18:34:35.489Z",
            "__v": 0
        },
        {
            "_id": "5d32b28ae6b23dcb8dd4f727",
            "name": "abc",
            "email": "abc@abc.com",
            "avatar": "//www.gravatar.com/avatar/4adcca49b3b1e5a08ac202f5d5a9e688?s=200&r=pg&d=mm",
            "password": "$2b$10$TFjKmx0vtwbDjQMr6R0kNeQ/jQvDLzCksDPXebDBJyykahun7Cnhi",
            "identity": "employee",
            "date": "2019-07-20T06:19:54.158Z",
            "__v": 0
        }
    ]
    }
    

    资金流水部分

    1.profiles数据库测试

    接口地址:http://localhost:5000/api/profiles/test
    请求方式:get
    请求示例:Examples
    接口参数:
    1.请求参数说明:
    {
        
    }
    2.返回参数说明:
    {
      "msg":"profiles test api works"
    }
    

    2.资金流水添加

    接口地址:http://localhost:5000/api/profiles/add
    请求方式:post
    请求示例:Examples
    接口参数:
    返回参数说明:
    1.请求参数说明:
    {
      "type":"优惠券",
      "describe":"买书",
      "income":"30",
      "expend":"20",
      "cash":"10",
      "remark":"开心"
    }
    2.返回参数说明:
    {
      "type":"优惠券",
      "describe":"买书",
      "income":"30",
      "expend":"20",
      "cash":"10",
      "remark":"开心"
    }
    

    3.资金流水获取全部

    接口地址:http://localhost:5000/api/profiles/
    请求方式:get
    请求示例:Examples
    接口参数:
    返回参数说明:
    1.请求参数说明:
    {
    
    }
    2.返回参数说明:
    {
      "profile":
      [
        {
          "type":"优惠券",
          "describe":"买书",
          "income":"30",
          "expend":"20",
          "cash":"10",
          "remark":"开心"
        },
        {
          "type":"礼券",
          "describe":"充值",
          "income":"50",
          "expend":"20",
          "cash":"30",
          "remark":"好开心"
        }
      ]
    }
    

    4.资金流水获取单个

    接口地址:http://localhost:5000/api/profiles/id
    请求方式:get
    请求示例:Examples
    接口参数:
    返回参数说明:
    1.请求参数说明:
    {
      "id":"5d320d3bb77a763724d503d9"
    }
    2.返回参数说明:
    {
      "_id":"5d320d3bb77a763724d503d9",
      "type":"优惠券",
      "describe":"买书",
      "income":"30",
      "expend":"20",
      "cash":"10",
      "remark":"开心"
    }
    

    5.资金流水编辑

    接口地址:http://localhost:5000/api/profiles/edit/id
    请求方式:post
    请求示例:Examples
    接口参数:
    返回参数说明:
    1.请求参数说明:
    {
      "type":"优惠券",
      "describe":"买书",
      "income":"30",
      "expend":"20",
      "cash":"10",
      "remark":"开心"
    }
    2.返回参数说明:
    {
      "type":"优惠券",
      "describe":"买书",
      "income":"30",
      "expend":"20",
      "cash":"10",
      "remark":"开心"
    }
    

    6.资金流水删除

    接口地址:http://localhost:5000/api/profiles/delete/id
    请求方式:delete
    请求示例:Examples
    接口参数:
    返回参数说明:
    1.请求参数说明:
    {
      "id":"5d320d3bb77a763724d503d9"
    }
    2.返回参数说明:
    {
      "_id":"5d320d3bb77a763724d503d9",
      "type":"优惠券",
      "describe":"买书",
      "income":"30",
      "expend":"20",
      "cash":"10",
      "remark":"开心"
    }
    //已删除的信息
    

    (附)打码过程记录

    1.后端接口配置(nodejs, express)

    npm install nodemon -g 全局安装nodemon避免重复启动服务器

    npm i mongoose 安装mangooose

    MongoDB Atlas 官网免费注册申请 MongoDB Atlas 云数据库

    postman 下载安装软件进行接口测试

    npm i body-parser 安装body-parser发post请求

    npm i bcrypt 加密

    npm i gravatar 头像,可到https://en.gravatar.com/注册上传头像

    npm i jsonwebtoken 登录成功返回token,token可以理解为一个令牌或者一个钥匙

    npm install passport-jwt passport 验证token

    2.前端页面书写(vue-cli 3.9.3, element-ui)

    npm install -g @vue/cli-service-global 全局安装最新的vue-cli

    总文件目录下运行 npm i concurrently 前后端连载,不用分步开启服务,配置如下:

    配置前端 client/package.json"scripts"

      "scripts": {
        "serve": "vue-cli-service serve",
        "build": "vue-cli-service build",
        "start": "npm run serve"
      },
    

    配置总文件 package.json"scripts"

      "scripts": {
        "client-install": "npm install --prefix client",
        "client": "npm start --prefix client",
        "start": "node server.js",
        "server": "nodemon server.js",
        "dev": "concurrently "npm run server" "npm run client""
      },
    

    总文件目录下运行 npm run dev 实现前后端服务同时开启

    npm i jwt-decode -S 解析token模块

    npm i axios -S 请求工具axios

    npm i element-ui -S 安装element-ui组件

    用到其

    • Message 消息提示
    • Loading 加载
    • NavMenu 导航菜单
    • Table 表格
    • Form 表单
    • Pagination 分页
    • DateTimePicker 日期时间选择器
    • Icon 图标
    • MessageBox 弹框

    等等

    引入 font-awesome 图库

    <link href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
    
    <!-- 示例 -->
    <i class="fa fa-margin fa-server fa-2x"></i>
    
  • 相关阅读:
    Yii调试插件yii-debug-toolbar的使用
    IE8不支持indexOf的解决办法
    使用wkhtmltopdf的一些事情
    mac sourcetree 启用 Beyond compare
    Java基础学习之(5)--impact和package
    Java基础学习之(3)--面向对象2--重载
    Java基础学习之(4)--面向对象3--this+static关键字
    Java基础学习之(2)--面向对象1
    Java基础学习之(1)--标识符、关键字、数据类型
    java学习(7)iterator迭代器
  • 原文地址:https://www.cnblogs.com/allenem/p/11222605.html
Copyright © 2011-2022 走看看