CSS - display,float,clear,overflow,visibility,<input type="hidden">

display属性:block/inline/none/inline-block

         display:block(作用是把行属性标签显示成块属性标签,可以设置宽高,前后有回车独立一行) ;

         display:inline(作用是把块属性标签显示成行属性标签,这时块属性标签就不能设置宽高啦);

         display:none(作用是使所控制的标签不显示)

         visibility:hidden(是设置元素的框的不可见,但是在布局中的位置是不变的) 它和display:none的区别就在于后者不会占用那个位置,下一个元素会直接覆盖它,而前者是会占用那个布局,只是不显示内容,是 一片空白;并且下载的时候对于display:none就不会把不显示的元素给下载下来,而visibility:hidden则会把不显示的元素给下 载下来;

float(浮动,照样受文档流的限制)行标签float之后就可以设置它的宽高

float:none/left/right    

           none : 对象不浮动

           left : 左浮动

           right : 右浮动

clear(清除浮动)

clear:both/none/left/right

             none : 允许两边都可以有浮动对象

             both : 不允许有浮动对象

             left : 不允许左边有浮动对象

             right : 不允许右边有浮动对象

overflow(超出)

overflow:visible/auto/hidden/scroll

                 visible : 不剪切内容也不添加滚动条

                 auto : 默认属性

                 hidden : 隐藏超出内容

                 scroll : 总是显示滚动条

visibility(可视)

visibility : inherit/visible/hidden

                inherit :  继承上一个父对象的可见性

                visible :  对象可视

                hidden :  对象隐藏

几种图片格式的差别:

gif:不支持半透明

jpg:支持透明

png:部分支持透明,需要额外处理

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body { margin: 0; padding: 0; } .right { width: 400px; height: 100%; position: fixed; right: 0; top: 0; background-color: rgba(0, 0, 0, 0.1); } .right>.head>div { float: left; width: 50%; text-align: center; height: 40px; line-height: 40px; background-color: #389fc3; color: white; } .right>.head>.time { background-color: white; color: red; } .right>.head, .right>.title, .right>.content { width: 280px; border: 1px solid #ccc; } .right>.title>span { font-size: 12px; display: inline-block; width: 50%; text-align: center; height: 40px; line-height: 40px; } .right>.title>span:first-child { font-size: 14px; font-weight: 500; } .right>.content { list-style: none; margin: 0; padding: 0 0 0 5px; width: 275px; } .right>.content>li { width: 30px; height: 30px; border: 1px solid #ccc; float: left; font-size: 12px; text-align: center; line-height: 30px; margin: 5px; } .right>.content>li>a { display: block; width: 100%; height: 100%; text-decoration: none; color: black; } .right>.content>li.active { background-color: #5d9cec; color: white; } .bottom { width: 900px; position: fixed; height: 40px; bottom: 0; right: 400px; line-height: 40px; padding-left: 20px; background-color: rgba(0, 0, 0, 0.1); } .bottom>.time { color: red; } .bottom>.submit { width: 100px; height: 100%; float: right; background-color: #389fc3; color: white; text-align: center; cursor: pointer; } .clear::after { content: ""; display: block; clear: both; height: 0; overflow: hidden; opacity: 0; } .main { margin-top: 10px; border: 1px solid #ccc; width: 900px; position: relative; left: 110px; } .main-title { height: 40px; line-height: 40px; } .main-title>span:first-child { padding: 0 20px; } .main-title>.main-sorce { display: inline-block; color: white; font-size: 12px; background-color: #389fc3; border-radius: 20px; padding: 0 10px; } .main>.main-question { list-style: none; margin: 0; padding: 0; } .main>.main-question>li { padding: 20px 0; } .main>.main-question .left { float: left; width: 50px; } .main>.main-question .left>span { width: 30px; height: 30px; background-color: #5d9cec; display: inline-block; border-radius: 30px; text-align: center; color: white; line-height: 30px; margin-left: 10px; } .main>.main-question .question { float: left; padding-left: 30px; width: 80%; } .main>.main-question .question>.line { width: 100%; border-top: 0.5px solid #000; } .main>.main-question .question>ul { list-style: none; margin: 0; padding: 0; } .main>.main-question .question>ul>li { padding: 5px; } .main>.main-question .question>ul>li:hover { background-color: #eee; } .mask { width: 100%; height: 100%; position: fixed; background-color: rgba(0, 0, 0, 0.4); z-index: 999; left: 0; top: 0; display: none; } .mask>.score-panel { width: 50%; height: 50%; position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto; background-color: white; } </style> </head> <body> <div class="main"> <div class="main-title"> <span>单选题</span> <span class="main-sorce">共0题,合计0分</span> </div> <ul class="main-question"></ul> </div> <div class="right"> <div class="head clear"> <div>答题卡</div> <div class="time">00:00:00</div> </div> <div class="title"><span>单选题</span><span class="num">共0道</span></div> <ul class="content clear"></ul> </div> <div class="bottom clear"> <span class="time">00:00:00</span> <div class="submit">提交</div> </div> <div class="mask"> <div class="score-panel"></div> </div> <script type="module"> // 获取JS文件 import getTime from "../JS文件/time.js"; import questionList from "../JS文件/data.js"; // 定义变量 var times, num, score, content, mainQuestion, submit, mask; // 存储用户答案的对象 var answerList = {}; // 初始化函数 init(); // 创建函数 function init() { // 获取所有的计时器 times = document.querySelectorAll('.time'); // 为每个计时器设置120的倒计时 times.forEach((item) => getTime(120, item)); // 设置分数显示 setScore(); // 设置右侧题目导航 setRightContent(); //创建题目内容 createQuestion(); //绑定提交事件 submitAnswer(); } // 设置分数信息 function setScore() { // 获取题目数量和分数显示元素 num = document.querySelector('.num'); score = document.querySelector('.main-sorce'); // 显示总题目数 num.innerHTML = `共${questionList.length}题`; // 计算总分 var s = questionList.reduce((value, item) => value + item.score, 0); // 显示总分信息 score.innerHTML = `共${questionList.length}题,合计${s}分`; } // 创建右侧题目导航 function setRightContent() { // 获取导航容器 content = document.querySelector('.content'); // 生成题目导航链接 content.innerHTML = questionList.map((item, index) => { // 为每个题目创建带锚点的链接 return `<li><a href='${index}'>${index + 1}</a></li>`; }).join(''); } // 创建题目内容 function createQuestion() { // 获取题目容器 mainQuestion = document.querySelector('.main-question'); // 绑定题目点击事件委托 mainQuestion.addEventListener('click', questionHandler); // 生成所有题目渲染 mainQuestion.innerHTML = questionList .map((item, index) => { return ` <li class="clear" id='${index}'> <div class="left"><span>${index + 1}</span></div> <div class="question"> <div>${item.question}</div> <div class="line"></div> <ul> ${item.options .map((t, ind) => { // 生成选项(A/B/C/D) const optionChar = String.fromCharCode(65 + ind); return `<li> <input type="radio" name="${index}" data='${optionChar}'/> ${optionChar + "." + t} </li>`; }) .join("")} </ul> </div> </li> `; }) .join(""); } // 处理题目选择 function questionHandler(e) { // 只处理input元素的点击 if (e.target.ondeName !== 'INPUT') return // 获取题目索引 const name = e.target.name; // 获取选项值 const data = e.target.getAttribute('data'); // 存储答案 answerList[name] = data; } //提交功能初始化 function submitAnswer() { //获取提交按钮和遮罩层 submit = document.querySelector('.submit'); mask = document.querySelector('.mask'); // 绑定提交事件 submit.addEventListener('click', clickHandler); // 绑定遮罩层点击事件 mask.addEventListener('click', maskHiddenHandler); } // 提交按钮点击处理 function clickHandler(e) { // 显示分数面板 mask.style.dispaly = 'block'; document.querySelector(".score-panel").innerHTML = ` 您一共得了${Object.keys(answerList).reduce((value, key) => { if (questionList[Number(key)].result === answerList[key]) value += questionList[Number(key)].score; return value; }, 0)}分 `; } function maskHiddenHandler(e) { // 关闭分数面板 mask.style.display = 'none'; } </script> </body> </html>
最新发布
08-02
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>板材库存查询系统</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- 引入 Popper.js 和 Bootstrap JS --> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.min.js"></script> <script src="../js/main.js"></script> <style> .card-header { background: linear-gradient(to right, #1e3c72, #2a5298); color: white; } .search-section { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); border-radius: 10px; } .result-section { max-height: 70vh; overflow: auto; border-left: 3px solid #1e3c72; } .table-hover tbody tr:hover { background-color: rgba(42, 82, 152, 0.05); } .material-kucun { font-weight: 700; color: #1e3c72; } .material-kucun-low { color: #dc3545 !important; } .no-results { min-height: 200px; display: flex; align-items: center; justify-content: center; } .stats-card { border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } body { background-color: #f8f9fa; padding-bottom: 2rem; } .search-control { position: relative; } .search-icon { position: absolute; left: 12px; top: 12px; color: #6c757d; } .form-control.with-icon { padding-left: 35px; } .highlight { background-color: rgba(255, 255, 0, 0.3) !important; } .info-badge { font-size: 0.8rem; font-weight: normal; } </style> </head> <body> <div class="container py-4"> <!-- 标题部分 --> <div class="text-center mb-4"> <h1 class="text-primary"><i class="bi bi-boxes"></i> 板材库存管理系统</h1> <p class="text-muted">查询订单、产品、板材及库存信息</p> </div> <!-- 统计卡片 --> <div class="row mb-4"> <div class="col-md-3"> <div class="card stats-card border-primary"> <div class="card-body"> <h5 class="card-title">订单总数</h5> <p class="card-text fs-3 text-primary" id="orderCount">0</p> </div> </div> </div> <div class="col-md-3"> <div class="card stats-card border-info"> <div class="card-body"> <h5 class="card-title">产品种类</h5> <p class="card-text fs-3 text-info" id="productCount">0</p> </div> </div> </div> <div class="col-md-3"> <div class="card stats-card border-success"> <div class="card-body"> <h5 class="card-title">板材库存</h5> <p class="card-text fs-3 text-success" id="materialCount">0</p> </div> </div> </div> <div class="col-md-3"> <div class="card stats-card border-warning"> <div class="card-body"> <h5 class="card-title">库存总量</h5> <p class="card-text fs-3 text-warning" id="totalStock">0</p> </div> </div> </div> </div> <!-- 搜索区域 --> <div class="card search-section mb-4"> <div class="card-header"> <h5 class="mb-0"><i class="bi bi-search me-2"></i>高级搜索</h5> </div> <div class="card-body"> <div class="row g-3"> <!-- 订单搜索 --> <div class="col-md-6"> <div class="search-control"> <i class="bi bi-clipboard-search search-icon"></i> <input type="text" class="form-control with-icon" id="orderSearch" placeholder="搜索订单号..." aria-label="订单号搜索"> </div> </div> <!-- 产品搜索 --> <div class="col-md-6"> <div class="search-control"> <i class="bi bi-grid search-icon"></i> <input type="text" class="form-control with-icon" id="productSearch" placeholder="搜索产品编号..." aria-label="产品编号搜索"> </div> </div> <!-- 板材搜索 --> <div class="col-md-4"> <div class="search-control"> <i class="bi bi-box search-icon"></i> <input type="text" class="form-control with-icon" id="materialSearch" placeholder="搜索板材ID或材质..." aria-label="板材搜索"> </div> </div> <!-- 木皮搜索 --> <div class="col-md-4"> <div class="search-control"> <i class="bi bi-tree search-icon"></i> <input type="text" class="form-control with-icon" id="woodSearch" placeholder="搜索木皮名称..." aria-label="木皮搜索"> </div> </div> <!-- 厚度范围 --> <div class="col-md-4"> <div class="input-group"> <span class="input-group-text"><i class="bi bi-arrows-vertical"></i></span> <input type="number" class="form-control" id="minThickness" placeholder="最小厚度(mm)" min="0" step="0.1"> <span class="input-group-text">~</span> <input type="number" class="form-control" id="maxThickness" placeholder="最大厚度(mm)" min="0" step="0.1"> <button class="btn btn-primary" type="button" id="thicknessBtn"> <i class="bi bi-arrow-right"></i> </button> </div> </div> <!-- 库存阈值 --> <div class="col-md-12"> <div class="d-flex align-items-center"> <span class="me-2">库存阈值:</span> <div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" id="lowStockCheck" checked> <label class="form-check-label" for="lowStockCheck">显示低库存<small class="text-danger ms-1"><i class="bi bi-exclamation-triangle"></i></small></label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" id="normalStockCheck" checked> <label class="form-check-label" for="normalStockCheck">显示正常库存</label> </div> <div class="ms-auto"> <button class="btn btn-primary me-2" id="searchBtn"> <i class="bi bi-search me-1"></i>搜索 </button> <button class="btn btn-outline-secondary" id="resetBtn"> <i class="bi bi-arrow-counterclockwise me-1"></i>重置 </button> </div> </div> </div> </div> </div> </div> <!-- 结果区域 --> <div class="card"> <div class="card-header d-flex justify-content-between align-items-center"> <h5 class="mb-0"><i class="bi bi-table me-2"></i>查询结果</h5> <div class="text-secondary"> <span id="resultCount">0</span> 条记录 <span class="ms-2"><i class="bi bi-info-circle"></i> <small>实时数据更新时间: <span id="lastUpdate">--:--:--</span></small></span> </div> </div> <div class="card-body result-section"> <div class="table-responsive"> <table class="table table-hover" id="resultTable"> <thead class="table-light sticky-top"> <tr> <th>订单号</th> <th>产品信息</th> <th>板材</th> <th>材质</th> <th>木皮1</th> <th>木皮2</th> <th>厚度(mm)</th> <th>库存</th> <th>操作</th> </tr> </thead> <tbody id="resultBody"> <!-- 数据加载中 --> <tr id="loadingRow"> <td colspan="9" class="text-center py-5"> <div class="d-flex align-items-center justify-content-center"> <div class="spinner-border text-primary" role="status"> <span class="visually-hidden">加载中...</span> </div> <div class="ms-3">正在加载数据,请稍候...</div> </div> </td> </tr> </tbody> </table> </div> <!-- 空结果提示 --> <div id="noResults" class="no-results text-center py-5" style="display: none;"> <div> <i class="bi bi-inboxes text-muted" style="font-size: 3rem;"></i> <h4 class="mt-3 text-muted">没有找到匹配的记录</h4> <p class="text-muted">请尝试调整您的搜索条件</p> </div> </div> </div> </div> </div> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function () { const modal = new bootstrap.Modal(document.getElementById('myModal'), { keyboard: false // 配置选项 }); // 手动触发 Modal document.getElementById('launchModal').addEventListener('click', function () { modal.show(); }); }); </script> <script src="../js/test.js?222"></script> 添加分别创建订单产品组件板材按钮弹窗,编辑订单时出现产品下拉框,下拉框旁边有添加按钮,点下弹出添加产品弹窗 以此类推 不需要js部分
06-07
<think>由于要求只修改HTML部分,不涉及JS,我将添加创建订单、产品、组件和板材的按钮和对应的模态框(弹窗)。同时,在编辑订单时,会出现一个产品下拉框,旁边有添加按钮,点击后弹出添加产品的弹窗。注意:由于现有代码中已经引用了Bootstrap,因此可以直接使用Bootstrap的模态框组件。按照要求,我们将创建以下模态框:1.创建订单的模态框2.创建产品的模态框(在订单编辑中点击添加产品时弹出)3.创建组件的模态框(可能在产品创建/编辑时使用,但根据要求,先添加)4.创建板材的模态框由于这是一个复杂的前端功能,我们只构建HTML结构,不添加JS逻辑。由于原页面中没有这些模态框,我们将在页面底部添加这些模态框的HTML。同时,在页面上添加一个“创建订单”的按钮,并放置在标题部分旁边。修改步骤:1.在标题部分添加一个“创建订单”的按钮。2.在页面底部添加四个模态框:创建订单、创建产品、创建组件、创建板材。注意:每个模态框需要有唯一的ID,并且结构符合Bootstrap的模态框结构。由于原页面中已经有一个模态框(但似乎没有内容),我们忽略它,添加新的模态框。由于要求是编辑订单时出现产品下拉框和添加按钮,但是我们没有编辑订单的模态框,因此我们将先创建“编辑订单”的模态框,并在其中添加产品下拉框和添加产品的按钮。因此,我们需要:-编辑订单的模态框(包含产品下拉框和添加产品按钮,点击添加产品按钮弹出创建产品的模态框)-创建订单的模态框-创建产品的模态框-创建组件的模态框-创建板材的模态框但是,题目要求只添加HTML,不写JS,所以我们只构建模态框的静态结构。考虑到页面复杂度,我们不会实现完整的表单,只给出必要的输入字段。由于原页面没有编辑订单的入口,我们将在操作列中添加一个编辑按钮(但操作列目前是空的,所以需要先添加编辑按钮),点击编辑按钮弹出编辑订单模态框。但是,由于题目要求不写JS,所以我们在HTML中构建模态框,而不处理事件。因此,我们修改:1.在结果表格的操作列中,将原有的空白改为两个按钮:编辑和删除(但删除按钮不展开)。2.添加编辑订单模态框,并在其中添加产品下拉框,以及一个“添加产品”按钮,点击该按钮会弹出创建产品模态框(通过data-bs-target属性连接)。由于模态框较多,我们按顺序添加。由于篇幅限制,我不会为每个模态框都写完整的表单,只给出关键部分。开始修改:</think> # 板材库存管理系统改进方案 基于您的需求,我将添加创建订单、产品、组件和板材的模态框以及相关的HTML交互元素。以下是我的解决方案: ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>板材库存查询系统</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.0/font/bootstrap-icons.css"> <style> /* 原有样式保持不变 */ .card-header { background: linear-gradient(to right, #1e3c72, #2a5298); color: white; } .search-section { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); border-radius: 10px; } .result-section { max-height: 70vh; overflow: auto; border-left: 3px solid #1e3c72; } .table-hover tbody tr:hover { background-color: rgba(42, 82, 152, 0.05); } .material-kucun { font-weight: 700; color: #1e3c72; } .material-kucun-low { color: #dc3545 !important; } .no-results { min-height: 200px; display: flex; align-items: center; justify-content: center; } .stats-card { border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } body { background-color: #f8f9fa; padding-bottom: 2rem; } .search-control { position: relative; } .search-icon { position: absolute; left: 12px; top: 12px; color: #6c757d; } .form-control.with-icon { padding-left: 35px; } .highlight { background-color: rgba(255, 255, 0, 0.3) !important; } .info-badge { font-size: 0.8rem; font-weight: normal; } /* 新增创建按钮样式 */ .create-buttons { position: fixed; right: 30px; bottom: 30px; z-index: 1000; display: flex; flex-direction: column; gap: 10px; } .create-main-btn { width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15); } .sub-buttons { display: flex; flex-direction: column; gap: 10px; transition: all 0.3s ease; opacity: 0; visibility: hidden; transform: translateY(20px); } .sub-buttons.visible { opacity: 1; visibility: visible; transform: translateY(0); } /* 模态框样式优化 */ .modal-header { background: linear-gradient(to right, #1e3c72, #2a5298); color: white; } .form-section { background-color: #f8f9fa; padding: 15px; border-radius: 8px; margin-bottom: 15px; } .form-section-title { font-weight: 600; color: #1e3c72; padding-bottom: 8px; margin-bottom: 10px; border-bottom: 1px solid #dee2e6; } </style> </head> <body> <div class="container py-4"> <!-- 标题部分 --> <div class="d-flex justify-content-between align-items-center mb-4"> <div> <h1 class="text-primary"><i class="bi bi-boxes"></i> 板材库存管理系统</h1> <p class="text-muted">查询订单、产品、板材及库存信息</p> </div> <button class="btn btn-primary" id="launchModal"> <i class="bi bi-plus-lg me-1"></i> 添加新订单 </button> </div> <!-- 统计卡片 --> <div class="row mb-4"> <!-- 统计卡片保持不变 --> <div class="col-md-3"> <div class="card stats-card border-primary"> <div class="card-body"> <h5 class="card-title">订单总数</h5> <p class="card-text fs-3 text-primary" id="orderCount">0</p> </div> </div> </div> <div class="col-md-3"> <div class="card stats-card border-info"> <div class="card-body"> <h5 class="card-title">产品种类</h5> <p class="card-text fs-3 text-info" id="productCount">0</p> </div> </div> </div> <div class="col-md-3"> <div class="card stats-card border-success"> <div class="card-body"> <h5 class="card-title">板材库存</h5> <p class="card-text fs-3 text-success" id="materialCount">0</p> </div> </div> </div> <div class="col-md-3"> <div class="card stats-card border-warning"> <div class="card-body"> <h5 class="card-title">库存总量</h5> <p class="card-text fs-3 text-warning" id="totalStock">0</p> </div> </div> </div> </div> <!-- 搜索区域 --> <div class="card search-section mb-4"> <!-- 搜索区域保持不变 --> <div class="card-header"> <h5 class="mb-0"><i class="bi bi-search me-2"></i>高级搜索</h5> </div> <div class="card-body"> <div class="row g-3"> <!-- 订单搜索 --> <div class="col-md-6"> <div class="search-control"> <i class="bi bi-clipboard-search search-icon"></i> <input type="text" class="form-control with-icon" id="orderSearch" placeholder="搜索订单号..." aria-label="订单号搜索"> </div> </div> <!-- 产品搜索 --> <div class="col-md-6"> <div class="search-control"> <i class="bi bi-grid search-icon"></i> <input type="text" class="form-control with-icon" id="productSearch" placeholder="搜索产品编号..." aria-label="产品编号搜索"> </div> </div> <!-- 板材搜索 --> <div class="col-md-4"> <div class="search-control"> <i class="bi bi-box search-icon"></i> <input type="text" class="form-control with-icon" id="materialSearch" placeholder="搜索板材ID或材质..." aria-label="板材搜索"> </div> </div> <!-- 木皮搜索 --> <div class="col-md-4"> <div class="search-control"> <i class="bi bi-tree search-icon"></i> <input type="text" class="form-control with-icon" id="woodSearch" placeholder="搜索木皮名称..." aria-label="木皮搜索"> </div> </div> <!-- 厚度范围 --> <div class="col-md-4"> <div class="input-group"> <span class="input-group-text"><i class="bi bi-arrows-vertical"></i></span> <input type="number" class="form-control" id="minThickness" placeholder="最小厚度(mm)" min="0" step="0.1"> <span class="input-group-text">~</span> <input type="number" class="form-control" id="maxThickness" placeholder="最大厚度(mm)" min="0" step="0.1"> <button class="btn btn-primary" type="button" id="thicknessBtn"> <i class="bi bi-arrow-right"></i> </button> </div> </div> <!-- 库存阈值 --> <div class="col-md-12"> <div class="d-flex align-items-center"> <span class="me-2">库存阈值:</span> <div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" id="lowStockCheck" checked> <label class="form-check-label" for="lowStockCheck">显示低库存<small class="text-danger ms-1"><i class="bi bi-exclamation-triangle"></i></small></label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" id="normalStockCheck" checked> <label class="form-check-label" for="normalStockCheck">显示正常库存</label> </div> <div class="ms-auto"> <button class="btn btn-primary me-2" id="searchBtn"> <i class="bi bi-search me-1"></i>搜索 </button> <button class="btn btn-outline-secondary" id="resetBtn"> <i class="bi bi-arrow-counterclockwise me-1"></i>重置 </button> </div> </div> </div> </div> </div> </div> <!-- 结果区域 --> <div class="card"> <div class="card-header d-flex justify-content-between align-items-center"> <h5 class="mb-0"><i class="bi bi-table me-2"></i>查询结果</h5> <div class="text-secondary"> <span id="resultCount">0</span> 条记录 <span class="ms-2"><i class="bi bi-info-circle"></i> <small>实时数据更新时间: <span id="lastUpdate">--:--:--</span></small></span> </div> </div> <div class="card-body result-section"> <div class="table-responsive"> <table class="table table-hover" id="resultTable"> <thead class="table-light sticky-top"> <tr> <th>订单号</th> <th>产品信息</th> <th>板材</th> <th>材质</th> <th>木皮1</th> <th>木皮2</th> <th>厚度(mm)</th> <th>库存</th> <th>操作</th> </tr> </thead> <tbody id="resultBody"> <!-- 数据加载中 --> <tr id="loadingRow"> <td colspan="9" class="text-center py-5"> <div class="d-flex align-items-center justify-content-center"> <div class="spinner-border text-primary" role="status"> <span class="visually-hidden">加载中...</span> </div> <div class="ms-3">正在加载数据,请稍候...</div> </div> </td> </tr> </tbody> </table> </div> <!-- 空结果提示 --> <div id="noResults" class="no-results text-center py-5" style="display: none;"> <div> <i class="bi bi-inboxes text-muted" style="font-size: 3rem;"></i> <h4 class="mt-3 text-muted">没有找到匹配的记录</h4> <p class="text-muted">请尝试调整您的搜索条件</p> </div> </div> </div> </div> </div> <!-- 创建订单模态框 --> <div class="modal fade" id="createOrderModal" tabindex="-1" aria-labelledby="createOrderModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="createOrderModalLabel">添加新订单</h5> <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="form-section"> <h6 class="form-section-title">订单基本信息</h6> <div class="row g-3"> <div class="col-md-6"> <label for="orderNumber" class="form-label">订单号*</label> <input type="text" class="form-control" id="orderNumber" placeholder="输入订单号" required> </div> <div class="col-md-6"> <label for="orderDate" class="form-label">订单日期*</label> <input type="date" class="form-control" id="orderDate" required> </div> <div class="col-md-12"> <label for="orderCustomer" class="form-label">客户信息*</label> <input type="text" class="form-control" id="orderCustomer" placeholder="输入客户名称"> </div> </div> </div> <div class="form-section"> <div class="d-flex justify-content-between align-items-center mb-3"> <h6 class="form-section-title mb-0">关联产品</h6> <button type="button" class="btn btn-sm btn-outline-primary" id="addProductBtn"> <i class="bi bi-plus-lg me-1"></i>添加产品 </button> </div> <div class="row g-3 mb-3"> <div class="col-md-8"> <label for="productSelect" class="form-label">选择产品</label> <div class="input-group"> <select class="form-select" id="productSelect"> <option selected disabled value="">-- 选择产品 --</option> <option value="1">CP001 - 实木餐桌</option> <option value="2">CP002 - 多层板柜子</option> <option value="3">CP003 - 密度板椅子</option> </select> <button class="btn btn-outline-secondary" type="button" id="addProduct"> <i class="bi bi-plus-circle"></i> </button> </div> </div> <div class="col-md-4"> <label for="productQuantity" class="form-label">数量*</label> <input type="number" class="form-control" id="productQuantity" value="1" min="1"> </div> </div> <div class="table-responsive"> <table class="table table-sm table-striped"> <thead> <tr> <th>产品编号</th> <th>产品名称</th> <th>数量</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>CP001</td> <td>实木餐桌</td> <td>2</td> <td> <button class="btn btn-sm btn-outline-danger"> <i class="bi bi-trash"></i> </button> </td> </tr> <tr> <td>CP002</td> <td>多层板柜子</td> <td>1</td> <td> <button class="btn btn-sm btn-outline-danger"> <i class="bi bi-trash"></i> </button> </td> </tr> </tbody> </table> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button> <button type="button" class="btn btn-primary">创建订单</button> </div> </div> </div> </div> <!-- 添加产品模态框 --> <div class="modal fade" id="addProductModal" tabindex="-1" aria-labelledby="addProductModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="addProductModalLabel">添加新产品</h5> <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="form-section"> <h6 class="form-section-title">产品基本信息</h6> <div class="row g-3"> <div class="col-md-6"> <label for="productNumber" class="form-label">产品编号*</label> <input type="text" class="form-control" id="productNumber" placeholder="输入产品编号" required>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值