p17 017渲染与删除任务列表

017渲染与删除任务列表

1 修改index.vue

在目录todos\src\components下

<template>
  <div>
    <div class="box-card">
      <el-card shadow="always">
        <el-input v-model="adddata.title" placeholder="请输入内容">
          <el-button slot="append" @click="addtodo">添加任务</el-button>
        </el-input>
      </el-card>
    </div>

    <el-card class="box-card">
      <div v-for="(todo, key) in todos" :key="key" class="text item">
        <template v-if="todo.done == false">
          <div class="lists">
            <el-checkbox v-model="todo.done" @change="todoDone(key)">
              {{ todo.title }}
            </el-checkbox>
            <div>
              <i class="el-icon-notebook-2" @click="showTodo(todos[key])"></i>
              <i class="el-icon-delete" @click="deleteTodo(key)"></i>
            </div>
          </div>
          <el-divider></el-divider>
        </template>
      </div>
    </el-card>
  </div>
</template>

<script>
export default {
  name: "helloworld",
  data() {
    return {
      adddata: {
        title: "",
      },
      todos: [],
    };
  },
  methods: {
    async addtodo() {
      var addtododata = this.adddata;
      var back = await this.$cloudbase.callFunction({
        name: "addtodo",
        data: addtododata,
      });
      console.log(back)
      this.getdata()
    },
    async getdata() {
      var back = await this.$cloudbase.callFunction({
        name: "gettodo",
      });
      this.todos = back.result.data;
      console.log(this.todos)
    },
    async deleteTodo(key) {
      var todoinfo=this.todos[key];
      var back = await this.$cloudbase.callFunction({
        name: "deltodo",
        data:{_id:todoinfo._id}
      });
      /* this.todos = back.result.data; */
      console.log(back)
      this.getdata()

    },
    async gettodo() {
      var back = await this.$cloudbase.callFunction({
        name: "gettodo",
      });
      console.log(back);
    },
  },
  mounted() {
    var auth = this.$cloudbase.auth();
    auth.anonymousAuthProvider().signIn();
    this.getdata();
  },
};
</script>


<style>
.dsb {
  color: #606266;
}
.text {
  font-size: 14px;
}
.box-card {
  margin: 0 auto;
  width: 580px;
  margin-bottom: 20px;
}
.lists {
  display: flex;
  justify-content: space-between;
}
</style>

2 修改todos\cloudbaserc.json

{
  "version": "2.0",
  "envId": "lagou-1gox9hn0f8a023c3",
  "$schema": "https://framework-1258016615.tcloudbaseapp.com/schema/latest.json",
  "functionRoot": "cloudfunctions",
  "framework": {
    "name": "vue",
    "plugins": {
      "client": {
        "use": "@cloudbase/framework-plugin-website",
        "inputs": {
          "buildCommand": "npm run build",
          "outputPath": "dist",
          "cloudPath": "/vue",
          "envVariables": {
            "VUE_APP_ENV_ID": "{{env.ENV_ID}}"
          }
        }
      },
      "server": {
        "use": "@cloudbase/framework-plugin-function",
        "inputs": {
          "functionRootPath": "cloudfunctions",
          "functions": [
            {
              "name": "gettodo",
              "timeout": 5,
              "envVariables": {},
              "runtime": "Nodejs10.15",
              "memory": 128,
              "aclRule": {
                "invoke": true
              }
            },
            {
              "name": "deltodo",
              "timeout": 5,
              "envVariables": {},
              "runtime": "Nodejs10.15",
              "memory": 128,
              "aclRule": {
                "invoke": true
              }
            },
            {
              "name": "addtodo",
              "timeout": 5,
              "envVariables": {},
              "runtime": "Nodejs10.15",
              "memory": 128,
              "aclRule": {
                "invoke": true
              }
            }
          ]
        }
      },
      "auth": {
        "use": "@cloudbase/framework-plugin-auth",
        "inputs": {
          "configs": [
            {
              "platform": "NONLOGIN",
              "status": "ENABLE"
            }
          ]
        }
      }
    }
  },
  "functions": [],
  "region": "ap-shanghai"
}

3 copy相关文件

copy todos\cloudfunctions\gettodo中的clouddb.js和package.json到todos\cloudfunctions\deltodo中

4 安装依赖

在目录todos\cloudfunctions\deltodo下
npm i

5 修改deltodo中的index.js

在目录todos\cloudfunctions\deltodo

const cloud = require('./clouddb')

async function deltodo(event) {
  var req=event;
  if(req._id==undefined){
    return;
}

const backdata=await cloud.collection('todo').doc(req._id).remove()
return backdata
}

exports.main = async (event, context) => {
  return deltodo(event);
};
   

6 部署

tcb

tcb fn code update deltodo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值