Ver Fonte

html页面

yuzijian há 2 anos atrás
pai
commit
a7ad6ca482

+ 456 - 18
src/main/resources/META-INF/resources/calculateView/calculate.html

@@ -1,30 +1,468 @@
 <!DOCTYPE html>
-<html>
+<html lang="en">
+
 <head>
-    <title>计算公式</title>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <link rel="stylesheet" href="./css/bootstrap.css">
-    <script src="./js/jquery-3.6.0.min.js"></script>
-    <script src="./js/bootstrap.js"></script>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <script src="https://admin.jubaolife.com/static/admin/lib/jquery-3.4.1/jquery-3.4.1.min.js"></script>
+    <title>列表</title>
+    <style>
+        * {
+            margin: 0;
+            padding: 0;
+            box-sizing: border-box;
+        }
+
+        body {
+            display: grid;
+            align-items: center;
+            justify-content: center;
+        }
+
+        .container {
+            width: 100vw;
+            height: 100vh;
+            margin-top: 20px;
+            display: flex;
+            overflow: hidden;
+        }
+
+        .container-left {
+            width: 200px;
+            padding: 10px 15px;
+            background: rgb(216, 195, 157);
+        }
+
+        .container-left input {
+            width: 80%;
+            min-height: 30px;
+            outline: none;
+            font-size: 16px;
+            margin-top: 10px;
+            margin-bottom: 15px;
+            border-radius: 5px;
+            padding: 0 5px;
+            border: 1px solid rgb(69, 126, 123);
+        }
+
+        .container-left button {
+            border-radius: 5px;
+            font-size: 16px;
+            padding: 10px 25px;
+            margin: 10px 20px;
+            cursor: pointer;
+        }
+
+        .container-right {
+            width: calc(100vw - 200px);
+            padding: 10px 15px;
+            overflow-y: auto;
+            background: rgb(160, 240, 178);
+
+        }
+
+        .container-right table {
+            cursor: default;
+            border: 1px solid #000;
+        }
+
+        .container-right table {
+            width: calc(100vw - 300px);
+            text-align: center;
+            margin: 20px 10px;
+        }
+
+        .container-right table thead td {
+            color: #fff !important;
+            background: rgb(73, 187, 58);
+        }
+
+        .container-right table tr td {
+            height: 35px;
+            font-size: 18px;
+            color: #000;
+            border: 1px solid #000;
+            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+        }
+
+        .container-right table tr td button {
+            padding: 3px 7px;
+            cursor: pointer;
+        }
+
+        .container-right table tr td input {
+            width: 200px;
+            text-align: center;
+        }
+
+        .delete {
+            color: #fff;
+            background-color: #f00;
+        }
+
+        .change {
+            background-color: #0f0;
+        }
+
+        .container-right table tr td span {
+            cursor: pointer;
+            text-align: center;
+            display: inline-block;
+            width: 24px;
+            height: 24px;
+            border-radius: 5px;
+            background-color: antiquewhite;
+        }
+
+        .container-right table tr td span:hover {
+            color: #fff;
+            background-color: rgb(172, 163, 152);
+        }
+
+        .search {
+            width: 200px;
+            font-size: 16px;
+            text-align: center;
+            padding: 10px 5px;
+            background-color: rgb(207, 183, 226);
+        }
+
+        .search input {
+            width: 130px;
+            height: 30px;
+            background-color: snow;
+            border: 1px solid rgb(80, 80, 80);
+            outline: none;
+        }
+    </style>
 </head>
+
 <body>
-    <div></div>
+<div class="container">
+    <div class="container-left">
+        <p>信息输入</p>
+        <form action="#" method="GET">
+            type:
+            <input type="text" name="type" id="type"/>
+            orderNo:
+            <input type="text" name="orderNo" id="orderNo"/>
+            formula:
+            <input type="text" name="formula" id="formula"/>
+            provinceEnum:
+            <input type="text" name="provinceEnum" id="provinceEnum"/>
+            ruleFormula:
+            <input type="text" name="ruleFormula" id="ruleFormula"/>
+            <button type="button" class="btn">添加</button>
+            <button type="reset">重置</button>
+        </form>
+    </div>
+    <div class="container-right">
+        <p>信息显示</p>
+        <table cellpadding="0" cellspacing="0">
+            <thead>
+            <td>序号</td>
+            <td>一</td>
+            <td>二</td>
+            <td>三</td>
+            <td>四</td>
+            <td>五</td>
+            <td>移除</td>
+            <td>修改</td>
+            </thead>
+            <tbody id="main">
+
+            </tbody>
+        </table>
+    </div>
+</div>
+
 </body>
+<script type="text/javascript">
+    //TODO 1.获取元素
+    // 获取存放数据位置的tbody标签
+    var tbody = document.querySelector('tbody');
+    // 获取输入数据区域的input的标签
+    var inputs = document.querySelectorAll('.container-left input');
+    // 获取触发添加功能的button按钮
+    var btn = document.querySelector('.btn');
+    // 获取触发清空表单的button按钮
+    var reset = document.querySelector('button[type=reset]');
+    // 设定序号初始值
+    var number = 0;
+    // 判断记录值
+    var flag = true;
+    // 定义空对象,存放输入数据
+    var message = {};
+    // 定义空数组,存放对象
+    var students = [];
+    // 接口数据
+    var list = [
+        {
+            id: 23,
+            type: "POINT_S",
+            orderNo: 1,
+            formula: "(1-math.abs((sj-yc)/yc))*100",
+            provinceEnum: "E21Old;E61;E62;E63;E64;",
+            ruleFormula: null
+        }
+    ];
+    $.ajax({
+        url: "http://localhost:9089/jarCalculate/select",
+        type: "GET",
+        async: false,
+        dataType: "json",
+        success: function (res) {
+            list = res.data;
+        }
+    });
+
+    // 新增接口
+    function postAdd(data) {
+        $.ajax({
+
+            type: "post",
+            dataType: "json",
+            contentType: 'application/json',
+            url: "http://localhost:9089/jarCalculate/add",
+            /*    data,*/
+            data: JSON.stringify(data),
+
+
+            type: "POST",
+            async: false,
+            dataType: "json",
+            success: function (res) {
+                console.log(res)
+                // 将输入的数据存入数组
+                message = {
+                    "number": number,
+                    "id": res.data.id,
+                    "type": inputs[0].value,
+                    "orderNo": inputs[1].value,
+                    'formula': inputs[2].value,
+                    'provinceEnum': inputs[3].value,
+                    'ruleFormula': inputs[4].value
+                };
+                // 调用去重函数
+                clearMess();
+                // 启用自动数据重置
+                reset.click();
+            }
+        });
+    };
+
+    // 修改
+    function postEdit(data) {
+        $.ajax({
+            url: "http://localhost:9089/jarCalculate/edit",
+            data,
+            type: "POST",
+            async: false,
+            dataType: "json",
+            success: function (res) {
+                alert(res.message);
+            }
+        });
+    };
+
+    // 删除
+    function postDelet(index) {
 
-<script>
-    // 初始化
-    init();
-    // 初始化数据
-    function init() {
         $.ajax({
+            url: "http://localhost:9089/jarCalculate/delet",
+            data: JSON.stringify({
+                id: students[index].id
+            }),
             type: "post",
-            url: "/jarCalculate/add",
-            success: function (data) {
-                console.log("add");
+            dataType: "json",
+            contentType: 'application/json',
+            cache: false,
+            success: function (res) {
+                alert(res.message);
             }
-        })
+        });
     }
+</script>
+<script>
+    for (var i = 0; i < list.length; i++) {
+        message = {
+            "number": i + 1,
+            "id": list[i].id,
+            "type": list[i].type,
+            "orderNo": list[i].orderNo,
+            'formula': list[i].formula,
+            'provinceEnum': list[i].provinceEnum,
+            'ruleFormula': list[i].ruleFormula
+        };
+        inputs[0].value = list[i].type;
+        inputs[1].value = list[i].orderNo;
+        inputs[2].value = list[i].formula;
+        inputs[3].value = list[i].provinceEnum;
+        inputs[4].value = list[i].ruleFormula;
+        // 调用去重函数
+        clearMess();
+        // 启用自动数据重置
+        reset.click();
+    }
+    // TODO 2.添加功能
+    btn.addEventListener('click', function () {
+        // 输入框非空判断
+        if (inputs[0].value != '' && inputs[0].value != null && inputs[1].value != '' && inputs[1].value !=
+            null && inputs[2].value != '' && inputs[2].value != null && inputs[3].value != '' && inputs[3].value != null) {
+            postAdd({
+                type: inputs[0].value,
+                orderNo: inputs[1].value,
+                formula: inputs[2].value,
+                provinceEnum: inputs[3].value,
+                ruleFormula: inputs[4].value
+            });
+        } else {
+            // 空数据提示
+            alert("数据输入不完全,请重新输入数据");
+        }
+        ;
+    });
+
+    //TODO 去重函数
+    function clearMess() {
+        students.push(message);
+        //  调用回显函数
+        innerMess();
+    };
+
+    // TODO 回显函数
+    function innerMess() {
+        // 生成表格内容区域
+        if (flag) {
+            // 创建新的tr节点
+            var trs = document.createElement('tr');
+            tbody.appendChild(trs);
 
+            // 每次创建一个tr,number+1
+            number++;
+
+            // 创建一个td,接收number值,赋予序号的含义
+            var tdNum = document.createElement('td');
+            tdNum.classList.add('nums');
+            tdNum.innerHTML = number;
+            trs.appendChild(tdNum);
+
+            // 将输入框的值赋予到新创建的td
+            for (var i = 0; i < inputs.length; i++) {
+                var tds = document.createElement('td');
+                tds.innerHTML = inputs[i].value;
+                trs.appendChild(tds);
+            }
+            ;
+
+            // 创建移除操作按钮 - 删除
+            var deleteBtn = document.createElement('td');
+            deleteBtn.innerHTML = `<button class="delete" data-event="deleteMess">删除</button>`;
+            trs.appendChild(deleteBtn);
+
+            // 创建修改操作按钮 - 修改
+            var changeBtn = document.createElement('td');
+            changeBtn.innerHTML = `<button class="change" data-event="changeMess">修改</button>`;
+            trs.appendChild(changeBtn);
+        }
+        ;
+    };
+
+    //TODO 删除函数
+    function deleteMess(element) {
+        // 获取到当前标签的序号
+        var deleteIndex = element.parentNode.parentNode;
+        if (confirm("是否确认操作")) {
+            deleteIndex.remove();
+            // 根据序号删除数组中的对应数据
+            for (var i = 0; i < students.length; i++) {
+                if (students[i].number == deleteIndex.children[0].innerHTML) {
+                    postDelet(i)
+                }
+            }
+            ;
+            students.splice(i, 1);
+            var nums = document.querySelectorAll('.nums');
+            // 删除行的同时,控制删除行以外行数序号的删减
+            var index;
+            if (nums.length > 0) {
+                for (var i = 0; i < nums.length; i++) {
+                    index = i;
+                    var nums = document.querySelectorAll('.nums');
+                    nums[index].innerHTML = index + 1;
+                }
+                ;
+            }
+            ;
+            number--;
+        }
+        ;
+    };
+
+    //TODO 修改函数
+    function changeMess(element) {
+        var tds2 = element.parentNode.parentNode.children;
+        for (var i = 1; i < tds2.length - 2; i++) {
+            inputs[i - 1].value = tds2[i].innerHTML;
+            tds2[i].innerHTML = `<input type="text" value='${tds2[i].innerText}'/>`;
+        }
+        ;
+        element.parentNode.innerHTML = `<button class="change" data-event="updateMess">更新</button>`;
+    };
+
+    //TODO 更新函数
+    function updateMess(element) {
+        var id = '';
+        var tdsInp = document.querySelectorAll('table input');
+        var firstNumber = parseInt(element.parentNode.parentNode.firstElementChild.innerHTML);
+        var tds3 = element.parentNode.parentNode.children;
+        for (var i = 0; i < students.length; i++) {
+            if (students[i].number == tds3[0].innerHTML) {
+                id = students[i].id;
+            }
+            ;
+        }
+        ;
+        students.splice(firstNumber - 1, 1);
+        var message2 = {
+            "number": firstNumber - 1,
+            "id": id,
+            "type": tdsInp[0].value,
+            "orderNo": tdsInp[1].value,
+            'formula': tdsInp[2].value,
+            'provinceEnum': tdsInp[3].value,
+            'ruleFormula': tdsInp[4].value
+        };
+        postEdit({
+            id: id,
+            type: tdsInp[0].value,
+            orderNo: tdsInp[1].value,
+            formula: tdsInp[2].value,
+            provinceEnum: tdsInp[3].value,
+            ruleFormula: tdsInp[4].value,
+        })
+        students.push(message2);
+        for (var i = 0; i < tdsInp.length; i++) {
+            tds3[i + 1].innerHTML = tdsInp[i].value;
+        }
+        ;
+        console.log(students)
+        reset.click();
+        element.parentNode.innerHTML = `<button class="change" data-event="changeMess">修改</button>`;
+    };
+    window.addEventListener('click', e => {
+        const {event} = e.target.dataset
+        if (event == 'updateMess') {
+            updateMess(e.target)
+        }
+        if (event == 'changeMess') {
+            changeMess(e.target)
+        }
+        if (event == 'deleteMess') {
+            deleteMess(e.target)
+        }
+    })
 </script>
-</html>
+
+</html>