• vue实现自定义表格的行列以及点击显示对钩


    先看效果图

    上代码:

    <!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">
        <title>table</title>
    </head>
    <style>
        #lineTd {
            background: #fff url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEiLz48L3N2Zz4=) no-repeat 100% center;
        }
        
        table.gridtable {
            font-family: verdana, arial, sans-serif;
            font-size: 11px;
            color: #333333;
            border-width: 1px;
            border-color: #666666;
            border-collapse: collapse;
        }
        
        table.gridtable th {
            width: 30px;
            border-width: 1px;
            padding: 8px;
            border-style: solid;
            border-color: #666666;
            background-color: #dedede;
        }
        
        table.gridtable td {
            border-width: 1px;
            padding: 8px;
            border-style: solid;
            border-color: #666666;
            background-color: #ffffff;
            text-align: center;
        }
        
        ul {
            width: 20%;
        }
        
        ul li {
            position: relative;
        }
        
        ul li button {
            position: absolute;
            right: 0;
        }
    </style>
    
    <body>
        <div id='app'>
            <div class="hello">
                自定义表格
                <ul>
                    字典一的数据:
                    <br/>
                    <input type="text" v-model='value1'>
                    <button @click='addValue1'> 添加</button>
                    <li v-for="(item,index) in dic1" :key="index">
                        {{ item }}
                        <button @click='deleterow1(item)'>删除</button>
                    </li>
                </ul>
                <ul>
                    字典二的数据:
                    <br/>
                    <input type="text" v-model='value2'>
                    <button @click='addValue2'> 添加</button>
                    <li v-for="(item,index) in dic2" :key="index">
                        {{ item }}
                        <button @click='deleterow2(item)'>删除</button>
                    </li>
                </ul>
                <table class="gridtable">
                    <tr>
                        <td id="lineTd">
                            <span style="float: left; margin-top: 20px">字典2</span>
                            <span style="float: right; margin-top: -10px">字典1</span>
                        </td>
                        <th v-for="(item,index) in dic1" :key="index">{{ item}}</th>
                    </tr>
                    <tr v-for="item in dic2" :key="item">
                        <td>
                            {{ item }}
                        </td>
                        <td v-for="(y,index) in dic1" :key="index" @click="rowclick(item, y)" :id=`${item+y}`>
                            <!-- <span v-show="isActive === item+y">✔️</span> -->
                        </td>
                    </tr>
                </table>
                <button>确定</button>
            </div>
        </div>
    </body>
    <script src="./js/vue.js"></script>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                dic1: [1, 2, 3, 4, 5, 6],
                dic2: ["a", "b", "c", "d"],
                isActive: "-1",
                value1: '',
                value2: ''
            },
            methods: {
                rowclick(x, y) {
                    // this.isActive = x + y;
                    if (document.getElementById(`${x+y}`).innerHTML == '✔️') {
                        document.getElementById(`${x+y}`).innerHTML = '';
                        return
                    }
                    document.getElementById(`${x+y}`).innerHTML = '✔️';
                },
                addValue1() {
                    if (!this.value1) {
                        alert('数据不可为空');
                        return
                    }
                    for (let i in this.dic1) {
                        if (this.dic1[i] == this.value1) {
                            alert('不许重复添加数据');
                            return
                        }
                    }
                    this.dic1.push(this.value1);
                },
                addValue2() {
                    if (!this.value2) {
                        alert('数据不可为空');
                        return
                    }
                    for (let i in this.dic2) {
                        if (this.dic2[i] == this.value2) {
                            alert('不许重复添加数据');
                            return
                        }
                    }
                    this.dic2.push(this.value2);
                },
                deleterow1(id) {
                    for (let i in this.dic1) {
                        if (this.dic1[i] == id) {
                            this.dic1.splice(i, 1)
                        }
                    }
                },
                deleterow2(id) {
                    for (let i in this.dic2) {
                        if (this.dic2[i] == id) {
                            this.dic2.splice(i, 1)
                        }
                    }
                }
            },
    
        })
    </script>
    
    </html>
  • 相关阅读:
    学习笔记_2012_4_13垃圾回收原理与String类的学习
    第五篇
    HTML练习代码
    上课第一天base关键字
    第四篇
    firebug使用指南
    HTML5的新特性
    UML建模
    CSS学习总结
    (转载)About me [my way]
  • 原文地址:https://www.cnblogs.com/houBlogs/p/15211463.html
Copyright © 2020-2023  润新知