欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

路由+增删改查(vue)

程序员文章站 2022-05-08 11:30:14
...

路由+增删改查(vue)

直接上代码,什么都有 哈哈哈,自己复制代码看效果,哈哈不晓得要描述什么。。。。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>路由+增删改查</title>
    <style type="text/css">
      html,
      body,
      #app {
        margin: 0;
        padding: 0px;
        height: 100%;
      }
      .header {
        height: 50px;
        background-color: #545c64;
        line-height: 50px;
        text-align: center;
        font-size: 24px;
        color: #fff;
      }
      .footer {
        height: 40px;
        line-height: 40px;
        background-color: #888;
        position: absolute;
        bottom: 0;
        width: 100%;
        text-align: center;
        color: #fff;
      }
      .main {
        display: flex;
        position: absolute;
        top: 50px;
        bottom: 40px;
        width: 100%;
      }
      .content {
        flex: 1;
        text-align: center;
        height: 100%;
      }
      .left {
        flex: 0 0 20%;
        background-color: #545c64;
      }
      .left a {
        color: white;
        text-decoration: none;
      }
      .right {
        margin: 5px;
      }
      .btns {
        width: 100%;
        height: 35px;
        line-height: 35px;
        background-color: #f5f5f5;
        text-align: left;
        padding-left: 10px;
        box-sizing: border-box;
      }
      button {
        height: 30px;
        background-color: #ecf5ff;
        border: 1px solid lightskyblue;
        font-size: 12px;
        padding: 0 20px;
      }
      .main-content {
        margin-top: 10px;
      }
      ul {
        margin: 0;
        padding: 0;
        list-style: none;
      }
      ul li {
        height: 45px;
        line-height: 45px;
        background-color: #a0a0a0;
        color: #fff;
        cursor: pointer;
        border-bottom: 1px solid #fff;
      }

      table {
        width: 100%;
        border-collapse: collapse;
      }

      td,
      th {
        border: 1px solid #eee;
        line-height: 35px;
        font-size: 12px;
      }

      th {
        background-color: #ddd;
      }
    </style>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://cdn.bootcss.com/vue-router/3.1.1/vue-router.min.js"></script>
  </head>
  <body>
    <!-- 要被 vue 实例所控制的区域 -->
    <div id="app">
      <!-- 路由占位符 -->
      <router-view></router-view>
    </div>

    <script>
      // 定义 APP 根组件
      const App = {
        template: `<div>
          <!-- 头部区域 -->
          <header class="header">哈哈哈管理系统</header>
          <!-- 中间主体区域 -->
          <div class="main">
            <!-- 左侧菜单栏 -->
            <div class="content left">
              <ul>
                <li><router-link to="/users">哈哈哈用户管理</router-link></li>
                <li><router-link to="/rights">哈哈哈歌曲管理</router-link></li>
                <li><router-link to="/goods">哈哈哈商品管理</router-link></li>
                <li><router-link to="/orders">哈哈哈订单管理</router-link></li>
                <li><router-link to="/settings">哈哈哈系统设置</router-link></li>
              </ul>
            </div>
            <!-- 右侧内容区域 -->
            <div class="content right"><div class="main-content">
              <router-view />
            </div></div>
          </div>
          <!-- 尾部区域 -->
          <footer class="footer">版权信息</footer>
        </div>`
      }
      // 用户管理组件
      const Users = {
        data() {
          return {
            userlist: [
              { id: 1, name: '张张', age: 10 },
              { id: 2, name: '颖颖', age: 20 },
              { id: 3, name: '盈盈', age: 30 },
              { id: 4, name: '莹莹', age: 40 }
            ]
          }
        },
        methods: {
          goDetail(id) {
            console.log(id)
            this.$router.push('/userinfo/' + id)
          }
        },
        template: `<div>
        <h3>盈盈用户管理区域</h3>
        <table>
          <thead>
            <tr><th>编号</th><th>姓名</th><th>年龄</th><th>操作</th></tr>
          </thead>
          <tbody>
            <tr v-for="item in userlist" :key="item.id">
              <td>{{item.id}}</td>
              <td>{{item.name}}</td>
              <td>{{item.age}}</td>
              <td>
                <a href="javascript:;" @click="goDetail(item.id)">详情</a>
              </td>
            </tr>
          </tbody>
        </table>
      </div>`
      }
      // 用户管理详情页面
      const UserInfo = {
        props: ['id'],
        template: `<div>
          <h5>我是用户详情页得内容 暂无具体内容 只接收传过来得id --- 英英Id为:{{id}}</h5>
          <button @click="goback()">后退</button>
        </div>`,
        methods: {
          goback() {
            // 实现后退功能
            this.$router.go(-1)
          }
        }
      }
      // 歌曲管理
      const Rights = {
         data(){
          return {
              id:"",
              name:"",
              flag: false,
              books: [],
              isSubmit:false,
          }
        },
        template: `<div>
            <div class="grid">
               <div>
                  <h1>歌名管理</h1>
                  <div class="book">
                    <div>
                      <label for="id">
                        编号:
                      </label>
                      <input type="text" v-model="id"  :disabled="flag">
                      <label for="name">
                        歌名:
                      </label>
                      <input type="text" v-model="name">
                      <button @click='handle' :disabled = "isSubmit">提交</button>
                    </div>
                  </div>
                </div>
                <div class="total">
                  <span>歌曲总数:</span>
                  <span>{{total}}</span>
                </div>
                <table>
                  <thead>
                    <tr>
                      <th>编号</th>
                      <th>名称</th>
                      <th>时间</th>
                      <th>操作</th>
                    </tr>
                  </thead>
                  <tbody>
                    <tr :key='item.id' v-for='item in books'>
                      <td>{{item.id}}</td>
                      <td>{{item.name}}</td>
                      <td>{{item.user}}</td>
                      <td>
                        <a href="" @click.prevent = "edit(item.id)">修改</a>
                        <span>|</span>
                        <a href="" @click.prevent = "del(item.id)">删除</a>
                      </td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </div>`,
        methods:{
            handle(){
              if(this.flag){
                this.books.some((item)=>{
                  if(item.id == this.id){
                    item.name = this.name
                    return true
                  }
                })
                this.flag = false
              }else{
                var book = {}
                book.id = this.id
                book.name = this.name
                this.books.push(book)
                this.id = ""
                this.name = ""
               
              }
               console.log(this.books)
            },
            edit(id){
              this.flag = true
              console.log("id",id)
              var book = this.books.filter(function(item){
                return id==item.id
              })
              this.id = book[0].id
              this.name = book[0].name
            },
            del(id){
              this.books = this.books.filter(function(item){
                return id!==item.id
              })
            },
          },
          computed:{
            total(){
              return this.books.length
            }
          },
          watch:{
            name(val){
             var flag = this.books.some(function(item){
              return item.name == val
             })
            if(flag){
              this.isSubmit = true
            }else{
              this.isSubmit = false
            }
            }
          },
        mounted(){
          var data = [
              {
                id: 1,
                name: '笑场',
                user: "薛之谦"
              },{
                id: 2,
                name: '有幸',
                user: "薛之谦"
              },{
                id: 3,
                name: '这么久没见',
                user: "赵宴请"
              },{
                id: 4,
                name: '方圆几里',
                user: "薛之谦"
              }]
              this.books = data
          }
      }
      // 商品管理
      const Goods = {
        template: `<div>
        <h3>当当当 我是商品管理区域 11111</h3>
      </div>`
      }
      // 订单管理
      const Orders = {
        template: `<div>
        <h3>当当当 我是订单管理区域   2222</h3>
      </div>`
      }
      // 系统设置
      const Settings = {
        template: `<div>
        <h3>当当当 我是系统设置区域  3333</h3>
      </div>`
      }

      // 创建路由对象
      const router = new VueRouter({
        routes: [
          {
            path: '/',
            component: App,
            redirect: '/users',
            children: [
              { path: '/users', component: Users },
              { path: '/userinfo/:id', component: UserInfo, props: true },
              { path: '/rights', component: Rights },
              { path: '/goods', component: Goods },
              { path: '/orders', component: Orders },
              { path: '/settings', component: Settings }
            ]
          }
        ]
      })
      const vm = new Vue({
        el: '#app',
        router
      })
    </script>
  </body>
</html>

运行效果图

路由+增删改查(vue)
不描述了,没啥好描述的,搞着好玩而已!!!!!。。。。。。

没有了 ,搞着好玩 哈哈哈 !!!!

相关标签: 路由 增删改查