用vue+css编写的一个计算成绩并添加的系统案例!!(含全部代码,需要的小伙伴们快来复制查看效果吧!)

<!DOCTYPE html>

<html lang="en">

  <head>

    <meta charset="UTF-8" />

    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <link rel="stylesheet" href="index.css" />

    <title>计算成绩小案例~</title>

  </head>

  <body>

    <div id="app" class="score-case">

      <div class="table">

        <table>

          <thead>

            <tr>

              <th>编号</th>

              <th>科目</th>

              <th>成绩</th>

              <th>操作</th>

            </tr>

          </thead>

          <tbody v-if="list.length >0">

            <tr v-for="(item,index) in list" :key="item.id">

              <td>{{ index+1 }}</td>

              <td>{{ item.subject }}</td>

              <!-- 不及格《60分加类red -->

              <td :class="{ red:item.score <60 }">{{ item.score }}</td>

              <td><a @click.prevent href="http://wwww.csdn.com" @click="del(item.id)">删除</a></td>

            </tr>

          </tbody>

          <tbody v-else="list.length=0">

            <tr>

              <td colspan="5">

                <span class="none">暂无数据</span>

              </td>

            </tr>

          </tbody>

          <tfoot>

            <tr>

              <td colspan="5">

                <span>总分:{{ totalScore }}</span>

                <span style="margin-left: 50px">平均分:{{ averages }}</span>

              </td>

            </tr>

          </tfoot>

        </table>

      </div>

      <div class="form">

        <div class="form-item">

          <div class="label" >科目:</div>

          <div class="input">

            <input

              type="text"

              placeholder="请输入科目"

              v-model.trim="subject"

            />

          </div>

        </div>

        <div class="form-item">

          <div class="label">分数:</div>

          <div class="input">

            <input

              type="text"

              placeholder="请输入分数"

              v-model.number="score"

            />

          </div>

        </div>

        <div class="form-item">

          <div class="label"></div>

          <div class="input">

            <button class="submit" @click="add">添加</button>

          </div>

        </div>

      </div>

    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

    <script>

      const app = new Vue({

        el: '#app',

        data: {

          list: [

          { id: 1, subject: '语文', score: 20 },

            { id: 7, subject: '数学', score: 99 },

            { id: 12, subject: '英语', score: 70 },

          ],

          subject: '',

          score: ''

        },

        methods:{

          del(id){

            // console.log(id)

            this.list= this.list.filter(item => item.id!==id)

          },

          add(){

            if(!this.subject) return alert("请输入科目")

            if(typeof this.score!=="number") return alert("请输入正确的成绩")

            //unshift前面加  push后面加

            this.list.unshift({

              id:+new Date(),

              subject:this.subject,

              score:this.score

            })

            this.subject="",

            this.score=""

          }

        },

        computed:{

          totalScore(){

            // return 100

            return this.list.reduce((sum, item) => sum+item.score,0)

          },

          averages(){

            if(this.list.length===0) return 0

            return (this.totalScore/this.list.length).toFixed(2)

          }

        }

      })

    </script>

  </body>

</html>

下面是index.css里面的代码(很全的)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.score-case {

  width: 1000px;

  margin: 50px auto;

  display: flex;

}

.score-case .table {

  flex: 4;

}

.score-case .table table {

  width: 100%;

  border-spacing: 0;

  border-top: 1px solid #ccc;

  border-left: 1px solid #ccc;

}

.score-case .table table th {

  background: #f5f5f5;

}

.score-case .table table tr:hover td {

  background: #f5f5f5;

}

.score-case .table table td,

.score-case .table table th {

  border-bottom: 1px solid #ccc;

  border-right: 1px solid #ccc;

  text-align: center;

  padding: 10px;

}

.score-case .table table td.red,

.score-case .table table th.red {

  color: red;

}

.score-case .table .none {

  height: 100px;

  line-height: 100px;

  color: #999;

}

.score-case .form {

  flex: 1;

  padding: 20px;

}

.score-case .form .form-item {

  display: flex;

  margin-bottom: 20px;

  align-items: center;

}

.score-case .form .form-item .label {

  width: 60px;

  text-align: right;

  font-size: 14px;

}

.score-case .form .form-item .input {

  flex: 1;

}

.score-case .form .form-item input,

.score-case .form .form-item select {

  appearance: none;

  outline: none;

  border: 1px solid #ccc;

  width: 200px;

  height: 40px;

  box-sizing: border-box;

  padding: 10px;

  color: #666;

}

.score-case .form .form-item input::placeholder {

  color: #666;

}

.score-case .form .form-item .cancel,

.score-case .form .form-item .submit {

  appearance: none;

  outline: none;

  border: 1px solid #ccc;

  border-radius: 4px;

  padding: 4px 10px;

  margin-right: 10px;

  font-size: 12px;

  background: #ccc;

}

.score-case .form .form-item .submit {

  border-color: #069;

  background: #069;

  color: #fff;

}

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风流野趣fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值