精华内容
下载资源
问答
  • vue待办事项管理
    2020-07-20 14:15:14
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title>表单绑定</title>
    	</head>
    	<body>
    		<script src="vue.js">
    		</script>
    		
    		<div id="app">
    			<input type="text" v-model="newTodo" v-on:keyup.enter="addTodo" />
    			<ul>
    				<li v-for="(todo,index) in todos" >
    					{{todo.text}}
    					<button type="button" v-on:click="removeTodo(index)">X</button>
    				</li>
    			</ul>
    		</div>
    		
    		<script >
    			new Vue({
    				el:'#app',
    				data:{
    					newTodo:"",
    					todos:[
    						{text:"扫地"}
    					]
    				},
    				methods:{
    					addTodo:function(){
    						var text =this.newTodo.trim();
    						if(text){
    							this.todos.push({text:text});
    						}
    						this.newTodo = "";
    					},
    					removeTodo:function(index){
    						this.todos.splice(index,1);
    					}
    				}
    				
    			})
    		</script>
    	</body>
    </html>
    
    

    在这里插入图片描述

    更多相关内容
  • 基于vue, vuex, vue-router, vuetify, vue CLI3 搭建的一个简单的代办事项清单demo。 使用日历视图更好地管理代办事项。添加事项时,可以选择事项开始和结束的日期时间,事件将被添加到日历中对应的位置,可视化的...
  • Vue实例待办事项

    多人点赞 热门讨论 2022-05-16 16:57:48
    vue实现待办事项(技术: vue-cli,bulma,vuex)

    效果

    请添加图片描述

    实现

    1. 通过vue.cli脚手架创建项目
    2. 引入bulma库创建样式
    3. 引入vuex进行状态管理,最主要是向各个组件传输信息
    4. 使用时先下载.json中相关包npm i
    5. 输入npm start启动

    代码

    1. todoApp.vue
    <template>
      <div class="todoApp" style="width:500px">
        <article class="panel is-primary">
        <todo-head />
        <todo-input />
        <todo-list />
        <todo-foot />
        </article>
        </div>
    </template>
    
    <script>
    import TodoFoot from './componentsTodo/todo-foot.vue'
    import TodoHead from './componentsTodo/todo-head.vue'
    import todoInput from './componentsTodo/todo-input.vue'
    import TodoList from './componentsTodo/todo-list.vue'
    export default {
      components: { todoInput, TodoList, TodoFoot, TodoHead }, // 注册子组件
      name: 'todoApp'
    }
    </script>
    
    <style lang="less" scoped>
        .todoApp{
            margin: 20px auto;
        }
    </style>
    
    1. componentsTodo文件下todo-head.vue
     <template>
      <div class="todo-head">
        <div class="panel-heading">
            <p class="title is-1  has-text-danger">添加待办事项</p>
            <p class="subtitle is-3 has-text-danger">今日事,今日毕</p>
        </div>
      </div>
    </template>
    
    <script>
    export default {
      name: 'todo-head'
    }
    </script>
    
    <style lang="less" scoped>
    
    </style>
    
    1. componentsTodo文件下todo-list.vue
     <template>
      <div class="todo-list">
        <ul v-if="todos.length > 0">
            <todo-list-item v-for="todo in todos" :key="todo.id" :item="todo"/>
        </ul>
        <div v-else>请添加待办事项</div>
      </div>
    </template>
    
    <script>
    import todoListItem from './todo-list-item.vue'
    export default {
      components: { todoListItem },
      name: 'todo-list',
      computed: {
        todos () {
          return this.$store.state.todos // 拿到state中共享数据
        }
      }
    }
    </script>
    
    <style lang="less" scoped>
    
    </style>
    
    1. componentsTodo文件下todo-list-item.vue
     <template>
      <div class="todo-list-item">
        <li>
            <label>
                <input
                type="checkbox"
                :checked="item.completed"
                @change="changeHandle"
                >
                <span>{{item.completed ? " 已" : " 未"}}完成&emsp;</span>
                <span>{{item.title}}&emsp;</span>
            </label>
            <button @click="delSingleHandle">删除</button>
        </li>
      </div>
    </template>
    
    <script>
    export default {
      name: 'todo-list-item',
      props: {
        item: {
          type: Object
        }
      },
      methods: {
        changeHandle () {
          this.$store.commit('changSingle', { id: this.item.id }) // 向store发送信息,触发mutations中changSingle事件,改变单选状态
        },
        delSingleHandle () {
          this.$store.commit('delSingle', { id: this.item.id }) // 向store发送信息,触发mutations中delSingle事件,删除单个代办事件
        }
      }
    }
    </script>
    
    <style lang="less" scoped>
        li {
            margin-left: 10px;
        }
        li span{
            font-size: 30px;
        }
    </style>
    
    1. componentsTodo文件下todo-foot.vue
     <template>
      <div class="todo-foot">
        <label class="panel-inline">
        <input
        type="checkbox"
        :checked="checkboxAllStatus"
        @change="checkboxAllChang({statu: !checkboxAllStatus})"
        >
        全选
        </label>
        <span class="panel-inline">已完成{{CompletedTodo}}项 一共{{total}}项</span>
        <div class="panel-block">
        <button class="button is-primary is-outlined is-fullwidth" @click="clearAll">
        清空所有事项
        </button>
        </div>
      </div>
    </template>
    
    <script>
    import { mapGetters, mapMutations } from 'vuex' // 拿到vuex中的事件和计算属性(也就是store中的)
    export default {
      name: 'todo-foot',
      computed: {
        ...mapGetters(['total', 'CompletedTodo', 'checkboxAllStatus'])
        // 注释内容等同于上面。上面简写形式
        // total () {
        //   return this.$store.getters.total
        // },
        // CompletedTodo () {
        //   return this.$store.getters.CompletedTodo
        // },
        // checkboxAllStatus () {
        //   return this.$store.getters.checkboxAllStatus
        // }
      },
      methods: {
        ...mapMutations(['checkboxAllChang', 'clearAll'])
        // 注释内容等同于上面。上面简写形式
        // checkboxAllChang (event) {
        //   this.$store.commit('checkboxAllChang', { statu: event.target.checked })
        // },
        // clearAll () {
        //   this.$store.commit('clearAll')
        // }
      }
    }
    </script>
    
    <style lang="less" scoped>
    div{
        margin-top: 10px;
    }
    </style>
    
    1. main.js入口配置
     import Vue from 'vue'
    import App from './todoApp.vue'
    // 引入store
    import store from './store'
    
    // 引入bulma库
    import 'bulma/css/bulma.min.css'
    
    Vue.config.productionTip = false
    // Vue.prototype.$bus = new Vue()
    
    new Vue({
      store, // 注册store,这样就全局可用了
      render: h => h(App)
    }).$mount('#app')
    
    1. store下的index.js配置文件
     import Vue from 'vue'
    import Vuex from 'vuex'
    
    // 使用核心插件
    
    Vue.use(Vuex)
    
    const store = new Vuex.Store({
      state: { // 组件之间共享数据
        todos: []
      },
      getters: {
        /**
        * 计算一共多少事件
        */
        total (state) {
          return state.todos.length
        },
        /**
         * 计算已完成事件
         */
        CompletedTodo (state) {
          return state.todos.filter(item => item.completed).length
        },
        /**
         * 根据单选框计算全选框状态
         */
        checkboxAllStatus (state) {
          return state.todos.every(item => item.completed)
        }
      },
      mutations: {
        // 添加事件
        addTodoItem (state, payload) {
          state.todos.push({
            id: state.todos.length === 0 ? 0 : state.todos[state.todos.length - 1].id + 1,
            title: payload.title,
            completed: false
          })
        },
        /**
         * 单个选项框改变
         */
        changSingle (state, payload) {
          state.todos.forEach(item => {
            if (item.id === payload.id) {
              item.completed = !item.completed
            }
          })
        },
        /**
         * 删除单个事件
         */
        delSingle (state, payload) {
          state.todos = state.todos.filter(item => item.id !== payload.id)
        },
        // 总选框改变事件
        checkboxAllChang (state, payload) {
          state.todos.forEach(item => {
            item.completed = payload.statu
          })
        },
        // 清除所有代办事件
        clearAll (state) {
          state.todos = []
        }
      }
    })
    export default store
    
    1. package.json配置包
    {
      "name": "project-name",
      "version": "0.1.0",
      "private": true,
      "scripts": {
        "start": "npm run serve",
        "serve": "vue-cli-service serve",
        "build": "vue-cli-service build",
        "lint": "vue-cli-service lint"
      },
      "dependencies": {
        "bulma": "^0.9.4",
        "core-js": "^3.8.3",
        "vue": "^2.6.14",
        "vue-router": "^3.5.3",
        "vuex": "^3.6.2"
      },
      "devDependencies": {
        "@babel/core": "^7.12.16",
        "@babel/eslint-parser": "^7.12.16",
        "@vue/cli-plugin-babel": "~5.0.0",
        "@vue/cli-plugin-eslint": "~5.0.0",
        "@vue/cli-service": "~5.0.0",
        "@vue/eslint-config-standard": "^6.1.0",
        "eslint": "^7.32.0",
        "eslint-plugin-import": "^2.25.3",
        "eslint-plugin-node": "^11.1.0",
        "eslint-plugin-promise": "^5.1.0",
        "eslint-plugin-vue": "^8.0.3",
        "less": "^4.0.0",
        "less-loader": "^8.0.0",
        "vue-template-compiler": "^2.6.14"
      }
     }
    
    展开全文
  • Vuex实战之 todos待办事项列表的状态管理 效果图: store.js文件代码 import Vue from 'vue' import Vuex from 'vuex' import axios from 'axios' Vue.use(Vuex) export default new Vuex.Store({ state: { //...

    Vuex实战之 todos待办事项列表的状态管理

    效果图:

    在这里插入图片描述
    注意: 使用的是vue-design-vue组件

    main.js文件代码

    import Vue from 'vue'
    import App from './App.vue'
    import store from './store'
    //1.导入ant-design-vue组件库
    import Antd from 'ant-design-vue'
    //2.导入组件库的样式表
    import 'ant-design-vue/dist/antd.css'
    
    Vue.config.productionTip = false
    //3.安装组件库
    Vue.use(Antd)
    
    new Vue({
      store,
      render: h => h(App)
    }).$mount('#app')
    
    

    store.js文件代码

    import Vue from 'vue'
    import Vuex from 'vuex'
    import axios from 'axios'
    
    Vue.use(Vuex)
    
    export default new Vuex.Store({
      state: {
        //所有的任务列表
        list:[],
        inputValue:'aaa',
        nextId:0,
        viewKey:'all',
       
      },
      mutations: {
       initList(state,arr){
         state.list=arr
       },
       //为文本框中的inputValue赋值
       setInputValue(state,val){
         state.inputValue=val
       },
       //新增列表数据
       addItem(state){  
         state.nextId=state.list.length//给新增的id赋值
         const obj={
           id:state.nextId,
           info:state.inputValue.trim(),
           done:false
         }
         state.list.push(obj);
         state.nextId++;
         state.inputValue=''
       },
       //根据id删除元素
       removeItem(state,id){
         //根据id查找对应项的索引
        const i= state.list.findIndex((x)=>x.id===id)
        //删除对于索引的元素
        if(i!==-1){
          state.list.splice(i,1)
        }
       },
       //复选框状态改变
       doneChange(state,par){
         const i=state.list.findIndex((x)=>x.id===par.id)
         if(i!==-1){
          state.list[i].done=par.done
         }
       },
       //清除已完成的任务
       cleanDone(state){
         state.list= state.list.filter(x=>x.done===false)
       },
       //切换页面上展示的数据
       changeViewKey(state,a){
         state.viewKey=a
       }
      },
      // axios发请求是异步操作
    actions: {
        //获取数据(初始化)
        getList(context){
          axios.get('/list.json').then(({data})=>{
            context.commit('initList',data)
          })
        }
      },
    getters:{
      //未选中的条数
      unDoneLength(state){
        return state.list.filter(x=>x.done===false).length
      },
      //切换页面上展示的数据
      tempList(state){
            if(state.viewKey==='undone'){
              return state.list.filter(x=>x.done===false)
           //等同于return state.list.filter(x=>!x.done)
            }else if(state.viewKey==='done'){
              return state.list.filter(x=>x.done===true)
            }else if(state.viewKey==='all'){
             return state.list
            }
            return state.list  
      }
      
    },
        
      modules: {
      }
      
    })
    
    

    app.vue文件代码

    <template>
      <div id="app">
        <a-input placeholder="请输入任务" class="my_ipt" :value='inputValue' @change="handleInputChange"/>
        <a-button type="primary" @click="additemToList">添加事项</a-button>
    
        <a-list bordered :dataSource="tempList" class="dt_list">
          <a-list-item slot="renderItem" slot-scope="item">
            <!-- 复选框 -->
            <a-checkbox :checked="item.done" @change="(e)=>{changeChecked(e,item.id)}">{{ item.info }}</a-checkbox>
            <!-- 删除链接 -->
            <a slot="actions" @click="deleteItem(item.id)">删除</a>
          </a-list-item>
    
          <!-- footer区域 -->
          <div class="footer" slot="footer">
            <span>{{unDoneLength}}条剩余</span>
            <a-button-group>
              <a-button :type="viewKey==='all'? 'primary':'default'" @click="changeList('all')">全部</a-button>
              <a-button :type="viewKey==='undone'? 'primary':'default'" @click="changeList('undone')">未完成</a-button>
              <a-button :type="viewKey==='done'? 'primary':'default'" @click="changeList('done')">已完成</a-button>
            </a-button-group>
            <a @click="clean" style="color:green">清除已完成</a>
          </div>
        </a-list>
      </div>
    </template>
    
    <script>
    
    import {mapState,mapGetters} from 'vuex'
    export default {
      name: "app",
      data() {
        return {};
      },
      computed:{
         ...mapState(['list','inputValue','viewKey']),
         ...mapGetters(['unDoneLength','tempList'])
      },
      methods:{
        //监听文本框内容变化
        handleInputChange(e){
          //console.log(e.target.value)//e.target.value可以拿到文本框中的值
          this.$store.commit('setInputValue',e.target.value)
        },
        //向列表中新增item项
        additemToList(){
          if(this.inputValue.trim().length<=0){
            return this.$message.warning('文本框内容不能为空!')
          }
          this.$store.commit('addItem')
          },
          deleteItem(id){
            this.$store.commit('removeItem',id)
          },
          //监听复选框选中状态
          changeChecked(e,id){
            const par={
              id:id,
              done:e.target.checked //e.target.checked可以直接拿到复选框的选中状态
            }
            this.$store.commit('doneChange',par)
          },
           //清除已完成的任务
          clean(){
            this.$store.commit('cleanDone')
          },
          //切换页面上展示的数据
          changeList(a){
            this.$store.commit('changeViewKey',a)
          }
        
      },
      
      created(){
       this.$store.dispatch('getList')
      }
    };
    </script>
    <style scoped>
    #app {
      padding: 10px;
    }
    .my_ipt {
      width: 500px;
      margin-right: 10px;
    }
    .dt_list {
      width: 500px;
      margin-top: 10px;
    }
    .footer {
      display: flex;
      justify-content: space-between;
      align-items: center;
    }
    </style>
    
    

    数据文件:list.json文件

    [{
        "id": 0,
        "info": "Racing car sprays burning fuel into crowd.",
        "done": true
      },
      {
        "id": 1,
        "info": " Japanese princess to wed commoner.",
        "done": false
      },
      {
        "id": 2,
        "info": "Australian walks 100km after outback crash.",
        "done": false
      },
      {
        "id": 3,
        "info": "Man charged over missing wedding girl.",
        "done": false
      },
      {
        "id": 4,
        "info": "Los Angeles battles huge wildfires.",
        "done": false
      }
    ]
    

    代码目录:
    在这里插入图片描述

    展开全文
  • Vuex 模块化实现待办事项的状态管理

    千次阅读 2017-06-02 16:10:45
    前言在vue里,组件之间的作用域是独立的,父组件跟子组件之间的通讯可以通过prop属性来传参,但是在兄弟组件之间通讯就比较麻烦了。比如A组件要告诉一件事...项目介绍待办事项中的一个事件,它可能拥有几个状态,未完成

    前言

    在vue里,组件之间的作用域是独立的,父组件跟子组件之间的通讯可以通过prop属性来传参,但是在兄弟组件之间通讯就比较麻烦了。比如A组件要告诉一件事给B组件,那么A就要先告诉他们的爸组件,然后爸组件再告诉B。当组件比较多,要互相通讯的事情很多的话,爸组件要管他们那么多事,很累的。vuex正是为了解决这个问题,让多个子组件之间可以方便的通讯。

    项目介绍

    待办事项中的一个事件,它可能拥有几个状态,未完成、已完成、已取消或被删除等。这个事件需要在这多种状态之间切换,那么使用vuex来管理也是非常方便的。

    来看一下vuex怎么完成状态管理的:

    所有组件都是调用actions,分发mutation去修改state,然后state经过getter又更新到各个组件里。state又通过localStorage存储数据到本地,下次重新打开时再读取保存的数据。

    模块化

    为什么要用模块化?当我们的项目比较大,组件很多,功能也多,会导致state里要存放很多内容,整个 store 都会很庞大,很难管理。

    我模块化的store目录如下:

    |-store/                   // 存放vuex代码
    |   |-eventModule          // 事件模块
    |   |   |-actions.js
    |   |   |-getters.js
    |   |   |-index.js
    |   |   |-mutations.js
    |   |   |-state.js
    |   |-themeModule           // 主题颜色模块
    |   |   |-actions.js
    |   |   |-getters.js
    |   |   |-index.js
    |   |   |-mutations.js
    |   |   |-state.js
    |   |-index.js              // vuex的核心,创建一个store
      

    可以看到,每个模块拥有自己的state、mutation、action、getter,这样子我们就可以把我们的项目根据功能划分为多个模块去使用vuex了,而且后期维护也不会一脸懵逼。

    状态管理

    接下来,我们来看看vuex完成状态管理的一个流程。

    举个栗子:一个待办事项,勾选之后,会在未完成列表里移除,并在已完成的列表里出现。这个过程,是这个待办事项的状态发生了改变。勾选的时候,是执行了一个方法,那我们就先写这个方法。在 event_list.vue 文件里新建一个moveToDone方法。

    methods: {
        moveToDone(id){ //移至已完成
            this.$store.dispatch('eventdone', id);
        }
    }
      

    在 moveToDone 方法中通过 store.dispatch 方法触发 action, 接下来我们在 eventModule/actions.js 中来注册这个 action, 接受一个 id 的参数。

    module.exports = {
        eventdone = ({ commit }, param) =>{
            commit('EVENTDONE',{id: param});
        }
    }
      

    action 通过调用 store.commit 提交载荷(也就是{id: param}这个对象)到名为’EVENTDONE’的 mutation,那我们再来注册这个 mutation

    module.exports = {
        EVENTDONE(states,obj){
            for (let i = 0; i < states.event.length; i++) {
                if (states.event[i].id === obj.id) {
                    states.event[i].type = 2;
                    states.event[i].time = getDate();
                    var item = states.event[i];
                    states.event.splice(i, 1);          // 把该事件在数组中删除
                    break;
                }
            }
            states.event.unshift(item);                 // 把该事件存到数组的第一个元素
            local.set(states);                          // 将整个状态存到本地
        }
    }
      

    通过 mutation 去修改 state, state里我们存放了一个 event 属性

    const state = {
        event: []
    };
    export default state;
      

    在组件中要获得这个 state 里的 event, 那就需要写个getters

    const getters = {
        getDone(states){
            return states.event.filter(function (d) {
                if (d.type === 2) {                 // type == 2表示已完成
                    return d;                       // 返回已完成的事件
                }
            });
        }
    };
    export default getters;
       

    然后每个module里都有一个index.js文件,把自己的state、mutation、action、getters都集合起来,就是一个module

    import * as func from '../function';
    import * as actions from './actions.js';
    import * as mutations from './mutations.js';
    import state from './state.js';
    import getters from './getters.js';
    
    module.exports = {
        state,
        getters,
        actions,
        mutations
    }
       

    在 store/index.js 里创建一个 store 对象来存放这个module

    import Vue from 'vue';
    import Vuex from 'vuex';
    import event from './eventModule';
    Vue.use(Vuex);
    module.exports = new Vuex.Store({
        modules: {
            event
        }
    });
       

    最后在 event_list.vue 组件上,我们通过计算属性 computed 来获取到这个从未完成的状态改变到已完成的状态,我们要用到 store 这个对象里的getters

    computed: {
        getDone(){
            return this.$store.getters.getDone;
        }
    }
      

    这样子,完成了 ‘未完成’ => ‘已完成’ 从提交修改到更新视图读取的整个流程,也是 vuex 工作的整个流程。通过 module 的封装,更加方便多模块项目的开发和维护。

    演示地址 : demo

    源码地址 : notepad

    更多文章 : blog

    展开全文
  • vue-demo 青否云 vue demo 官网 http://cloud.qingful.com 演示 https://qingful.github.io/jquery-demo/index.html 账号:13253522080 密码:mmmmmm 使用 登录青否云 创建应用 数据设置。 创建数据表。 创建数据...
  • 基于vue全家桶的代办事项demo:项目简介 项目介绍 基于vue, vuex, vue-router, vuetify, vue CLI3 搭建的一个简单的代办事项清单demo。 使用日历视图更好地管理代办事项。 添加事项时,可以选择事项开始和结束的...
  • Vue实现待办事件列表

    2021-10-11 11:32:21
    1、在输入框中输入待办事项并按回车键可以把内容添加到下面列表中,并且待办事项总数会随之增加 2.、点击待办事项列表中"√"可以将事件添加到已完成事件中, 点击“×”按钮,该按钮可以删除该事项 3.、已完成事项...
  • Vue 实现待办事项列表一、主要vue文件梳理App.vueToDoForm.vueToDoItem.vueToDoItemEditForm.vue二、要点总结 创建一个待办事件列表实现待办事件的增删改以及选中功能,项目源码查看 一、主要vue文件梳理 App.vue &...
  • 待办事项使用SpringBoot创建的列表 简单的Web应用程序,用于管理日常任务。 包括MVC模式,现成的html前端和数据库使用。 技术栈: Java 11; Spring(网络,安全性,jpa); 胸腺 Postgre SQL。
  • 前言如果您所在公司有用过类似的todo list产品,那应该对其不是很陌生。todo list(待办事项列表),非常有名的todo list产品有Teambition,JIRA等等。...本次《todo list: Vue待办事项任务管理》,分为一下章节...
  • 待办事项中的一个事件,它可能拥有几个状态,未完成、已完成、已取消或被删除等。这个事件需要在这多种状态之间切换,那么使用vuex来管理也是非常方便的。 来看一下vuex怎么完成状态管理的: 所有组件都是调用...
  • 这个demo虽然功能少,但是vuex知识点大部分都在这里面了,麻雀虽小 五脏内全应用项目地址 传送门 代办事项地址在这里 这是用vue2.0写的商城 高仿vivo商城 地址在这里 如果你觉的对你有帮助帮忙点个star谢谢 感谢大佬...
  • 日历日历和待办事项列表可以添加构建设置# install dependenciesnpm install# serve with hot reload at localhost:8080npm run dev# build for production with minificationnpm run build# build for production ...
  • 你好~我是波吉!今天更新的是《Vue3 | 实现精美的待办》系列文章,会带大家学一下Vue3。通过做一个小的待办项目,把 Vue3 中常用到的知识点串联起来~
  • 一般待办事项应用程式。换工作的投资组合。 目的是创建学习主题,例如Python(Django),Web API和jwt身份验证。 简单的蓝图 资料夹结构 仅列出创建/编辑的那些。 前端 后端 产品组合的技术要素 前端 Vue.js “ ...
  • 一种基于番茄技术的任务管理应用程序。 五角enta的概念 试图控制思想是最糟糕的解决方案。 创建一个系统并运行它。 Pentazemin不仅仅是一个ToDo应用。 这更像是用于时间管理的应用程序。 Pomodoro Technique也有很...
  • 它旨在用作创建待办事项列表的简单的待办事项Web应用程序,并提供使用在线帐户登录的选项,以使待办事项数据在设备之间保持同步。 构建设置 # install dependencies npm install # serve with hot reload, check ...
  • 因此,这是另一个待办事项应用程序,可用于研究我们的标新立异的生活。介绍effintodos是一个简单的待办事项应用程序,可帮助您完成应有的任务。它消除了典型的删除线和复选框样式。因此,就像上面的图片一样,它以便...
  • 本文带领大家从搭建环境开始,手把手带领大家用 Vue3 Typescript + element-plus 开发一个极简「待办清单」app,在实战中学习 Vue3 TypeScript。如果你正在搭建后台管理工具,又不想处理前端问题,推荐使用卡拉云 ,...
  • ###wms-message 消息模块,包括咨询、消息待办、联系客服、在线帮助等 ###wms-file 系统文件管理模块,包括文件上传、显示等 ##其他说明 ###在线api文档 在线api文档使用Swagger2,访问地址:...
  • 高校教师综合信息管理系统源码 技术选型:SpringBoot + Vue前后端分离,提高开发效率 功能模块: ...任务管理:我的流程 + 待办任务 + 已办任务 系统工具:代码自动生成 + 表单构建 + Swagger接口文档
  • 系统主要功能: ...系统管理员:个人中心(我的待办、我的已办)、缺陷管理、项目管理、用户管理、角色管理、菜单管理、部门管理、统计分析 详情:https://blog.csdn.net/qq_33037637/article/details/124883897
  • 待办事项清单 组件 警报 头像 徽章 面包屑 按钮 卡片 落下 导航栏 侧边栏 进步 形式 选框 输入 文字区 选择 范围 验证 登录 登记 忘记密码 贡献 随时贡献 执照 该模板已获得MIT许可
  • Nuxt.js任务管理器(Vue,Koa,猫鼬) 旧版vuejs的演示: 特征: 看板卡卡内待办事项清单卡内的注释和评论权限控制(管理员和普通用户) 卡中具有日期和状态的任务表全面复制卡移至垃圾桶功能I18n(英语,英语,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,392
精华内容 556
关键字:

vue待办事项管理