原神升级计划数据表:4个倒计时可以修改提示信息和时间,可以点击等级、命座、天赋、备注进行修改。

news2024/11/15 11:02:27

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>原神倒计时</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;

            body {
                background: #0b1b2c;
            }
        }

        header {
            width: 100vw;
            height: 40px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            background-color: #cbcbcb;

            /* logo */
            figure.logo {
                width: 262px;
                height: 50px;
                /* 缩小 */
                transform: scale(0.8);
                margin-top: 2px;
                margin-left: -15px;
                border-radius: 50%;
                background: #f30303;
                box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
                    inset -4px -4px 5px rgba(0, 0, 0, 0.6);
                z-index: 99;

                figcaption {
                    background: hsl(0, 0%, 0%);
                    background-clip: text;
                    -webkit-background-clip: text;
                    -webkit-text-fill-color: transparent;
                    font-weight: bold;
                    box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6), inset -4px -4px 5px rgba(0, 0, 0, 0.6);
                    letter-spacing: -3px;
                    line-height: 45px;
                    border-radius: 50%;
                    font-size: 40px;
                    width: 152px;
                }

                .my_name1 {
                    text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.726);
                    clip-path: polygon(0% 0%, 100% 0%, 100% 50%, 0% 50%);
                    transform: translate(35%, 0%);
                }

                .my_name2 {
                    text-shadow: 1px 1px 1px hsla(160, 100%, 37%, 0.555);
                    clip-path: polygon(0% 50%, 100% 50%, 100% 100%, 0% 100%);
                    transform: translate(35%, -93%);
                }

                img {
                    width: 60px;
                    height: 35px;
                    border-radius: 50%;
                    transition: transform 0.3s ease;
                    position: absolute;

                    &:hover {
                        transform: scale(1.3);
                        filter: drop-shadow(0 0 0.3em #ff0202);
                    }
                }

                .kong {
                    margin-top: 7px;
                    margin-left: 200px;
                }

                .ying {
                    top: 7px;
                    margin-left: 2px;
                }
            }

            /* 时间 */
            time {
                background: -webkit-linear-gradient(315deg, #e1ff00 50%, #ff0000);
                background-clip: text;
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
                font-size: 1.5rem;
                font-weight: 900;
                text-shadow: 2px -1px 8px rgba(250, 80, 193, 0.323);

                sub {
                    -webkit-text-fill-color: #cfd601;
                    text-shadow: 1px 1px 1px #100000;
                    font-size: 1rem;
                }
            }

            /* 全屏还原关闭按钮 */
            menu {
                display: flex;

                button {
                    background: none;
                    border: none;
                }

                img {
                    width: 35px;
                    margin-top: 5px;
                    margin-right: 5px;
                    cursor: pointer;

                    &:hover {
                        transform: scale(1.2);
                        padding: 5px;
                        background: #ffd000;
                    }
                }

                button:nth-child(2) {
                    display: none;
                    /* 放大镜效果 */
                    transform: scale(1.16);
                }
            }
        }

        main {
            display: flex;
            flex-direction: column;
            align-items: center;

            #countdownContainer {
                display: flex;
                flex-direction: column;
                align-items: center;

                button {
                    font-size: 1.5rem;
                    color: hsla(160, 100%, 37%, 0.63);
                    text-shadow: 1px 1px 1px #100000;
                    cursor: pointer;
                    border-radius: 3px;
                    /* background-color: #f30303; */
                    border: none;
                    margin: 5px;
                    padding: 3px;
                }

                dialog {
                    transform: translate(180%, 80%);
                    padding: 10px;
                    border: 1px solid #ddd;
                    border-radius: 5px;
                    background-color: #f3f3f3;
                }

                dialog::backdrop {
                    /* 模糊背景 */
                    backdrop-filter: blur(2px);
                }
            }

            table {
                border-collapse: collapse;

                th,
                td {
                    text-align: center;
                    padding: 8px;
                    border: 1px solid #ddd;
                }

                th {
                    background-color: #9f9e9e;
                }

                td {
                    color: hsl(0, 0%, 100%);
                    text-shadow: 1px 1px 1px #030303;
                }
            }
        }

        #dialogAddCharacter {
            transform: translate(180%, 80%);
            transform: translate(180%, 80%);
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #f3f3f3;
        }
    </style>
</head>

<body>
    <header>
        <!-- logo -->
        <figure class="logo">
            <a href="https://blog.csdn.net/lulei5153?spm=1011.2415.3001.5343" title="与妖为邻CSDN博客" target="_blank">
                <img class="kong" src="file:///D:/img/icon.ico" alt="与妖为邻">
            </a>
            <figcaption class="my_name1">与妖为邻</figcaption>
            <figcaption class="my_name2">与妖为邻</figcaption>
            <a href="file:///D:/web/html%E9%A6%96%E9%A1%B5/%E5%A4%87%E5%BF%98%E5%BD%95.html" class="home_page"
                title="首页" target="_blank">
                <img class="ying" src="file:///D:/img/ying.png" alt="与妖为邻">
            </a>
        </figure>
        <!-- 时间 -->
        <time datetime="2024-07-10" title="2024-07-10" id="dateTime">2024-07-10</time>
        <!-- 天气 -->
        <iframe class="tianqi" frameborder="0" width="280" height="36" scrolling="no" hspace="0"
            src="https://i.tianqi.com/?c=code&id=99">
        </iframe>
        <!-- 全屏还原关闭按钮 -->
        <menu>
            <button class="fullScreen" type="button"><img src="file:///D:/img/全屏.svg" alt="全屏"
                    onclick="fullScreen()"></button>
            <button class="exitFullScreen" type="button"><img src="file:///D:/img/还原.svg" alt="还原"
                    onclick="exitFullScreen()"></button>
            <button type="button"><img src="file:///D:/img/关闭.svg" alt="关闭" onclick="closeAll()"> </button>
        </menu>
    </header>
    <main>
        <div id="countdownContainer"></div>
        <div>
            <button type="button" onclick="dialogAddCharacter.show() ">添加角色</button>
            <dialog id="dialogAddCharacter">
                <form id="addCharacterForm">
                    <label for="element">元素:</label>
                    <select id="element" name="element">
                        <option value="火">火</option>
                        <option value="水">水</option>
                        <option value="风">风</option>
                        <option value="雷">雷</option>
                        <option value="草">草</option>
                        <option value="冰">冰</option>
                        <option value="岩">岩</option>
                    </select><br><br>
                    <label for="role">角色:</label>
                    <input type="text" id="role" name="role"><br><br>
                    <label for="level">等级:</label>
                    <input type="number" id="level" name="level"><br><br>
                    <label for="constellation">命座:</label>
                    <select id="constellation" name="constellation">
                        <option value="0">0</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                        <option value="4">4</option>
                        <option value="5">5</option>
                        <option value="6">6</option>
                    </select><br><br>
                    <label for="talent">天赋:</label>
                    <input type="text" id="talent" name="talent"><br><br>
                    <label for="note">备注:</label>
                    <input type="text" id="note" name="note"><br><br>
                    <button type="button" onclick="addCharacter() ">添加角色</button>
                    &nbsp;&nbsp;&nbsp;
                    <button type="submit">关闭</button>
                </form>
            </dialog>
            <button type="button" onclick="deleteSelectedRows()">删除选中</button>
            <div id="countdownContainer"></div>
            <table id="characterTable"> </table>
        </div>
    </main>
</body>
<script>
    /* 现在时间*/
    var current_time = document.getElementById("dateTime");
    function showTime() {
        var now = new Date();
        var year = now.getFullYear();
        var month = ("0" + (now.getMonth() + 1)).slice(-2);
        var day = ("0" + now.getDate()).slice(-2);
        var hour = ("0" + now.getHours()).slice(-2);
        var min = ("0" + now.getMinutes()).slice(-2);
        var second = ("0" + now.getSeconds()).slice(-2);
        var week = [
            "星期日",
            "星期一",
            "星期二",
            "星期三",
            "星期四",
            "星期五",
            "星期六",
        ][now.getDay()];
        var time = `${year}-${month}-${day}<sub id='sub'>${week}</sub> ${hour}:${min}:${second}`;
        current_time.innerHTML = time;
    }
    showTime();
    setInterval(showTime, 1000);
    /* 现在时间 结束*/
    /* 全屏功能与关闭*/
    function fullScreen() {
        var elem = document.documentElement;
        if (elem.requestFullscreen) {
            elem.requestFullscreen();
        } else if (elem.mozRequestFullScreen) { // Firefox
            elem.mozRequestFullScreen();
        } else if (elem.webkitRequestFullscreen) { // Chrome, Safari and Opera
            elem.webkitRequestFullscreen();
        } else if (elem.msRequestFullscreen) { // IE/Edge
            elem.msRequestFullscreen();
        }
    }
    function exitFullScreen() {
        if (document.exitFullscreen) {
            document.exitFullscreen();
        } else if (document.mozCancelFullScreen) { // Firefox
            document.mozCancelFullScreen();
        } else if (document.webkitExitFullscreen) { // Chrome, Safari and Opera
            document.webkitExitFullscreen();
        } else if (document.msExitFullscreen) { // IE/Edge
            document.msExitFullscreen();
        }
    }
    // 获取全屏和还原按钮
    var fullScreenBtn = document.querySelector(".fullScreen");
    var exitFullScreenBtn = document.querySelector(".exitFullScreen");
    // 监听全屏和还原事件
    document.addEventListener("fullscreenchange", function () {
        if (document.fullscreenElement) {
            fullScreenBtn.style.display = "none";
            exitFullScreenBtn.style.display = "block";
        } else {
            fullScreenBtn.style.display = "block";
            exitFullScreenBtn.style.display = "none";
        }
    });
    // 关闭当前窗口
    function closeAll() {
        window.close();
    }
    /* 全屏功能与关闭 结束*/
    /* 倒计时功能渲染*/
    const countdownContainer = document.getElementById('countdownContainer');
    function createCountdownElement(id) {
        const button = document.createElement('button');
        button.textContent = `第${id}个倒计时`;
        button.id = `countdownElement${id}`;
        button.onclick = () => document.getElementById(`dialogCountdownElement${id}`).showModal();
        const dialog = document.createElement('dialog');
        dialog.id = `dialogCountdownElement${id}`;
        const form = document.createElement('form');
        form.method = 'dialog';
        const messageDiv = document.createElement('div');
        const messageLabel = document.createElement('label');
        messageLabel.textContent = '更改提示信息:';
        messageLabel.htmlFor = `message${id}`;
        const messageInput = document.createElement('input');
        messageInput.type = 'text';
        messageInput.id = `message${id}`;
        messageInput.value = '距离2024年国庆节还有:';
        messageDiv.appendChild(messageLabel);
        messageDiv.appendChild(messageInput);
        const targetDateDiv = document.createElement('div');
        const targetDateLabel = document.createElement('label');
        targetDateLabel.textContent = '更改目标日期:';
        targetDateLabel.htmlFor = `targetDate${id}`;
        const targetDateInput = document.createElement('input');
        targetDateInput.type = 'datetime-local';
        targetDateInput.id = `targetDate${id}`;
        targetDateDiv.appendChild(targetDateLabel);
        targetDateDiv.appendChild(targetDateInput);
        const closeButton = document.createElement('button');
        closeButton.type = 'submit';
        closeButton.textContent = '关闭';
        closeButton.style.display = 'block';
        closeButton.style.margin = '5px auto';
        form.appendChild(messageDiv);
        form.appendChild(targetDateDiv);
        form.appendChild(closeButton);
        dialog.appendChild(form);
        countdownContainer.appendChild(button);
        countdownContainer.appendChild(dialog);
    }
    for (let i = 1; i <= 4; i++) {
        createCountdownElement(i);
    }
    /* 倒计时功能渲染 结束*/
    /* 倒计时功能实现*/
    const countdownData = {
        1: { message: 'message1', targetDate: 'targetDate1' },
        2: { message: 'message2', targetDate: 'targetDate2' },
        3: { message: 'message3', targetDate: 'targetDate3' },
        4: { message: 'message4', targetDate: 'targetDate4' }
    };
    // 加载时从localStorage读取数据
    window.onload = function () {
        for (let id in countdownData) {
            const message = localStorage.getItem(countdownData[id].message);
            const targetDate = localStorage.getItem(countdownData[id].targetDate);
            if (message) {
                document.getElementById(countdownData[id].message).value = message;
            }
            if (targetDate) {
                document.getElementById(countdownData[id].targetDate).value = targetDate;
            }
        }
    };
    // 保存数据到localStorage
    function saveData(id) {
        const message = document.getElementById(countdownData[id].message).value;
        const targetDate = document.getElementById(countdownData[id].targetDate).value;
        localStorage.setItem(countdownData[id].message, message);
        localStorage.setItem(countdownData[id].targetDate, targetDate);
    }
    // 监听输入框的变化并保存数据
    for (let id in countdownData) {
        document.getElementById(countdownData[id].message).addEventListener('input', () => saveData(id));
        document.getElementById(countdownData[id].targetDate).addEventListener('input', () => saveData(id));
    }
    function showCountdown(id) {
        const message = document.getElementById(countdownData[id].message).value;
        const targetDateInput = document.getElementById(countdownData[id].targetDate);
        const targetDateValue = targetDateInput.value;
        const now = new Date();
        let targetDate;
        if (targetDateValue) {
            targetDate = new Date(targetDateValue);
        } else {
            targetDate = new Date(2024, 9, 1); // 默认值:2024年10月1日
        }
        const diff = targetDate - now;
        const days = Math.floor(diff / (1000 * 60 * 60 * 24));
        const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
        const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
        const seconds = Math.floor((diff % (1000 * 60)) / 1000);
        const countdownElement = document.getElementById(`countdownElement${id}`);
        countdownElement.innerHTML = `${message}${days}天${hours}小时${minutes}分${seconds}秒`;
    }
    for (let id in countdownData) {
        showCountdown(id);
        setInterval(() => showCountdown(id), 1000);
    }
    /* 倒计时功能实现 结束*/
    /*原神数据存储与渲染*/
    // 从 localStorage 中读取数据
    let data = JSON.parse(localStorage.getItem('genshinData')) || [];
    // 获取页面上的表格元素
    const characterTable = document.getElementById("characterTable");
    // 渲染表格
    function renderTable() {
        characterTable.innerHTML = `
    <tr>
        <th>选择</th>
        <th>序号</th>
        <th>元素</th>
        <th>角色</th>
        <th>等级</th>
        <th>命座</th>
        <th>天赋</th>
        <th>备注</th>
    </tr>
`;
        let row = 1;
        let lastElement = null;
        for (let i = 0; i < data.length; i++) {
            const elementData = data[i];
            for (let j = 0; j < elementData.characters.length; j++) {
                const character = elementData.characters[j];
                const newRow = characterTable.insertRow();
                newRow.insertCell().innerHTML = `<input type="checkbox" ${character.selected ? 'checked' : ''} onchange="updateCheckboxStatus(this, ${i}, ${j})">`; // 添加复选框并根据数据选中
                newRow.insertCell().textContent = row++;
                if (elementData.element !== lastElement) {
                    const elementCell = newRow.insertCell();
                    elementCell.rowSpan = elementData.characters.length;
                    elementCell.textContent = elementData.element;
                    lastElement = elementData.element;
                }
                newRow.insertCell().textContent = character.role;
                newRow.insertCell().innerHTML = `<span onclick="editField('level', ${i}, ${j})">${character.level}</span>`;
                newRow.insertCell().innerHTML = `<span onclick="editField('constellation', ${i}, ${j})">${character.constellation}</span>`;
                newRow.insertCell().innerHTML = `<span onclick="editField('talent', ${i}, ${j})">${character.talent}</span>`;
                newRow.insertCell().innerHTML = `<span onclick="editField('note', ${i}, ${j})">${character.note}</span>`;
                newRow.style.backgroundColor = getElementColor(elementData.element);
            }
        }
    }
    // 获取元素颜色
    function getElementColor(element) {
        switch (element) {
            case "火": return "#FF0000"; // 红色
            case "水": return "#0000FF"; // 蓝色
            case "风": return "#00FFFF"; // 青色
            case "雷": return "#800080"; // 紫色
            case "草": return "#008000"; // 深绿色
            case "冰": return "#ADD8E6"; // 浅蓝色
            case "岩": return "#FFFF00"; // 黄色
            default: return "#FFFFFF"; // 默认白色
        }
    }
    // 初始渲染表格
    renderTable();
    function addCharacter() {
        const element = document.getElementById("element").value;
        const role = document.getElementById("role").value;
        const level = document.getElementById("level").value;
        const constellation = document.getElementById("constellation").value;
        const talent = document.getElementById("talent").value;
        const note = document.getElementById("note").value;
        if (!element || !role || !level || !constellation || !talent || !note) {
            alert("请填写所有字段");
            return;
        }
        const newCharacter = {
            role: role,
            level: parseInt(level),
            constellation: constellation,
            talent: talent,
            note: note
        };
        let elementExists = false;
        for (let i = 0; i < data.length; i++) {
            if (data[i].element === element) {
                data[i].characters.push(newCharacter);
                elementExists = true;
                break;
            }
        }
        if (!elementExists) {
            data.push({
                element: element,
                characters: [newCharacter]
            });
        }
        // 保存数据到 localStorage
        localStorage.setItem('genshinData', JSON.stringify(data));
        // 重新渲染表格
        renderTable();
        // 清空表单
        document.getElementById("element").value = "";
        document.getElementById("role").value = "";
        document.getElementById("level").value = "";
        document.getElementById("constellation").value = "";
        document.getElementById("talent").value = "";
        document.getElementById("note").value = "";
    }
    function updateCheckboxStatus(checkbox, elementIndex, characterIndex) {
        data[elementIndex].characters[characterIndex].selected = checkbox.checked;
        localStorage.setItem('genshinData', JSON.stringify(data));
    }
    function deleteSelectedRows() {
        for (let i = data.length - 1; i >= 0; i--) {
            for (let j = data[i].characters.length - 1; j >= 0; j--) {
                if (data[i].characters[j].selected) {
                    data[i].characters.splice(j, 1);
                }
            }
            if (data[i].characters.length === 0) {
                data.splice(i, 1);
            }
        }
        // 保存数据到 localStorage
        localStorage.setItem('genshinData', JSON.stringify(data));
        // 重新渲染表格
        renderTable();
    }
    // 修改等级、命座、天赋、备注
    function editField(field, elementIndex, characterIndex) {
        const newValue = prompt("请输入新的值:", data[elementIndex].characters[characterIndex][field]);
        if (newValue !== null) {
            data[elementIndex].characters[characterIndex][field] = newValue;
            localStorage.setItem('genshinData', JSON.stringify(data));
            renderTable();
        }
    }
    /*原神数据存储与渲染 结束*/
</script>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1982316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「队列」实现FIFO队列(先进先出队列|queue)的功能 / 手撕数据结构(C++)

概述 队列&#xff0c;是一种基本的数据结构&#xff0c;也是一种数据适配器。它在底层上以链表方法实现。 队列的显著特点是他的添加元素与删除元素操作&#xff1a;先加入的元素总是被先弹出。 一个队列应该应该是这样的&#xff1a; --------------QUEUE-------------——…

大数据资源平台建设可行性研究方案(58页PPT)

方案介绍: 在当今信息化高速发展的时代&#xff0c;大数据已成为推动各行各业创新与转型的关键力量。为了充分利用大数据的潜在价值&#xff0c;构建一个高效、安全、可扩展的大数据资源平台显得尤为重要。通过本方案的实施企业可以显著提升数据处理能力、优化资源配置、促进业…

SQL注入实例(sqli-labs/less-8)

0、初始页面 1、确定闭合字符 ?id1 and 11 ?id1 and 12 ?id1 ?id1 and 11 -- ?id1 and 12 -- 确定闭合字符为单引号&#xff0c;并且正确页面与错误页面的显示不同 2、爆库名 使用python脚本 def inject_database1(url):name for i in range(1, 20):low 32high 1…

【大模型从入门到精通5】openAI API高级内容审核-1

这里写目录标题 高级内容审核利用 OpenAI 内容审核 API 的高级内容审核技术整合与实施使用自定义规则增强审核综合示例防止提示注入的策略使用分隔符隔离命令理解分隔符使用分隔符实现命令隔离 高级内容审核 利用 OpenAI 内容审核 API 的高级内容审核技术 OpenAI 内容审核 AP…

SQL注入漏洞复现1

一、靶场信息 sqli-labs下载&#xff1a;https://github.com/Audi-1/sqli-labs phpstudy下载地址&#xff1a;http://down.php.cn/PhpStudy20180211.zip 我是在本地安装小皮搭建环境&#xff0c;相比于在服务器上搭建环境&#xff0c;更加简单 二、注入实操 Less-1 爆库名…

搭建高可用OpenStack(Queen版)集群(三)之部署认证管理服务(Keystone)控制节点集群

一、搭建高可用OpenStack&#xff08;Queen版&#xff09;集群之部署认证服务&#xff08;Keystone&#xff09;控制节点集群 一、Identity 服务简介 1、Identity概述 Identity为认证管理&#xff0c;授权管理和服务目录服务管理提供单点整合。其它Openstack服务将身份认证服务…

常用的图像增强操作

我们将介绍如何用PIL库实现一些简单的图像增强方法。 [!NOTE] 初始化配置 import numpy as np from PIL import Image, ImageOps, ImageEnhance import warningswarnings.filterwarnings(ignore) IMAGE_SIZE 640[!important] 辅助函数 主要用于控制增强幅度 def int_param…

centos7.9升级rocky

ELevate Quickstart Guide | AlmaLinux Wiki 将 CentOS 7 升级到 AlmaLinux 9 由于 Leapp 工具设计为执行一步升级&#xff0c;为了将您的 CentOS 7 机器升级到 AlmaLinux 9&#xff0c;您需要拆分升级过程&#xff1a; CentOS 7 到 AlmaLinux 8AlmaLinux 8 到 AlmaLinux 9 …

Chainlit快速实现AI对话应用1 分钟内实现聊天数据的持久化保存

概述 默认情况下&#xff0c;Chainlit 应用不会保留其生成的聊天和元素。即网页一刷新&#xff0c;所有的聊天记录&#xff0c;页面上的所有聊天记录都会消失。但是&#xff0c;存储和利用这些数据的能力可能是您的项目或组织的重要组成部分。 一旦启用&#xff0c;数据持久性…

3d模型贴图后有部分阴影怎么解决?---模大狮模型网

在展览3D模型设计行业中&#xff0c;贴图是使展品栩栩如生的关键步骤之一。然而&#xff0c;有时在贴图后可能会出现一些意外的阴影&#xff0c;影响了展品的逼真度和视觉效果。本文将探讨在3D模型贴图后出现部分阴影的原因及解决方法&#xff0c;帮助设计师有效应对这一常见问…

Transwarp Data Studio 4.0 :适应AI新时代实现三大能力提升

企业数据资产管理能力建设需要经历资源化、资产化和资本化三个阶段&#xff0c;对应数据底座建设、资产管理平台建设、流通运营平台建设三大任务。星环科技大数据开发工具 Transwarp Data Studio&#xff0c;在此过程中发挥着承上启下的关键作用。近日&#xff0c;星环科技重磅…

ESP8266 烧录----待坑

虚焊&#xff0c;连接不稳定&#xff08;*******&#xff09;&#xff1b;暂时只有通过测试接口电压进行判断&#xff0c;无其它方法 问题总结 1. 输入电压为3.3V USB转TTL RX TX 必须不能高3.3否则无输出(USB转TTL有多种类型&#xff0c;测RX TX电源&#xff1b;天问的是5V的…

sqli-labs闯关1-4

第一关&#xff1a; 这里的输入了 &#xff1f;id1 意思是以GET方式传入id1的参数 就等于SELECT * FROM users WHERE id1 LIMIT 0,1 注意&#xff1a;-- 与-- 空格的区别 在url中输入了--以后&#xff0c;后端数据会变成--空格。在 url中输入 -- 空格 变成 -- 在mysql中&…

fieldIndex on a Row without schema is undefined

Bug信息 Caused by: java.lang.UnsupportedOperationException: fieldIndex on a Row without schema is undefined.at org.apache.spark.sql.Row$class.fieldIndex(Row.scala:342)at org.apache.spark.sql.catalyst.expressions.GenericRow.fieldIndex(rows.scala:166)at org…

Java - 2.1 Java基础

2.1 Java基础 &#xff08;1&#xff09;JVM & JRE & JDK JVM &#xff08;Java Virtual Machine&#xff09;是 Java 虚拟机&#xff0c;它的作用是运行 Java 字节码文件&#xff0c;它有针对不同系统的不同实现&#xff0c;以此达成一次编译&#xff0c;随处运行的…

【限免】通信信号与干扰信号【附MATLAB代码】

微信公众号&#xff1a;EW Frontier 关注可了解更多的雷达、通信、人工智能相关代码。问题或建议&#xff0c;请公众号留言; 个人博客&#xff1a;106.54.201.174 QQ交流群&#xff1a;949444104 摘要 本项目主要模拟仿真常见通信信号及干扰信号&#xff0c;高斯白噪声、噪声调…

ARMxy工控机使用Node-Red教程:实现Modbus转MQTT协议二次开发(8)

Modbus/TCP与MQTT通信案例 7.1 案例说明 案例功能&#xff1a;使用node-red工具通过Modbus/RTU协议采集M160T IO模块数据&#xff0c;再经过MQTT协议的转换上传到上位机Ubuntu。基于 node-red 部署程序&#xff0c;实现获取 M160T IO 模块数据上传到上位机。 图 98 7.2 案例…

TeleVis:基于NLP的新冠新闻舆情可视化项目

关联比赛: 疫情数据可视化公益行动 一、项目名称 TeleVis&#xff1a;基于NLP的新冠新闻舆情可视化项目 二、团队信息 团队名称&#xff1a;TeleVis 单 位&#xff1a;金融壹账通大数据研究院 成 员&#xff1a;杨镭、郭凌峰、王天宇、黄北辰、齐婧含 三、项目介绍 政企机构的…

AST 基础

目录 AST 的基本结构安装 babel 库babel 中的组件parse 与 generatorparsegenerator完整代码 traverse 与 visitortraversevisitor 的定义方式path 对象中的 traverse types判断节点类型生成新的节点valueToNode&#xff08;方便的生成字面量&#xff09; path 对象(重点)path …