vue3+echarts实现基于indexdb的工厂mes制造执行系统代码
代码语言:html
所属分类:其他
代码描述:vue3+echarts实现基于indexdb的工厂mes制造执行系统代码
代码标签: vue echarts 基于 indexdb 工厂 mes 制造 执行 系统 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>小型工厂MES系统</title> <!-- Vue 3 CDN --> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue3.2.22.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/echarts.js"></script> <style> :root { --primary-color: #4a90e2; --primary-hover-color: #357ABD; --bg-color: #f4f7fa; --sidebar-bg: #2c3e50; --sidebar-text: #ecf0f1; --sidebar-active-bg: #34495e; --text-color: #333; --border-color: #e0e6ed; --card-bg: #ffffff; --shadow: 0 4px 6px rgba(0, 0, 0, 0.1); --success-color: #2ecc71; --warning-color: #f39c12; --danger-color: #e74c3c; --info-color: #3498db; } body, html { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background-color: var(--bg-color); color: var(--text-color); height: 100vh; overflow: hidden; } #app { display: flex; height: 100vh; width: 100vw; } .loading-screen { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; font-size: 1.5em; color: var(--sidebar-bg); } .sidebar { width: 220px; background-color: var(--sidebar-bg); color: var(--sidebar-text); display: flex; flex-direction: column; flex-shrink: 0; transition: width 0.3s; } .sidebar-header { padding: 20px; font-size: 1.5em; font-weight: bold; text-align: center; border-bottom: 1px solid var(--sidebar-active-bg); } .sidebar-header .logo { width: 32px; height: 32px; margin-right: 10px; vertical-align: middle; } .nav-menu { list-style: none; padding: 0; margin: 20px 0; flex-grow: 1; } .nav-item { display: flex; align-items: center; padding: 15px 20px; cursor: pointer; transition: background-color 0.2s, border-left 0.2s; border-left: 4px solid transparent; } .nav-item svg { margin-right: 15px; width: 20px; height: 20px; fill: currentColor; } .nav-item:hover { background-color: var(--sidebar-active-bg); } .nav-item.active { background-color: var(--sidebar-active-bg); border-left-color: var(--primary-color); font-weight: bold; } .main-content { flex-grow: 1; padding: 30px; overflow-y: auto; display: flex; flex-direction: column; } .page-header { font-size: 2em; font-weight: bold; margin-bottom: 20px; border-bottom: 2px solid var(--border-color); padding-bottom: 10px; } /* Generic Styles */ .card { background: var(--card-bg); border-radius: 8px; padding: 20px; box-shadow: var(--shadow); margin-bottom: 20px; } .grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; } .btn { padding: 10px 18px; border: none; border-radius: 5px; cursor: pointer; font-size: 1em; transition: background-color 0.2s, transform 0.1s; color: white; } .btn:active { transform: translateY(1px); } .btn-primary { background-color: var(--primary-color); } .btn-primary:hover { background-color: var(--primary-hover-color); } .btn-success { background-color: var(--success-color); } .btn-danger { background-color: var(--danger-color); } .btn-secondary { background-color: #95a5a6; color: white; } .btn-icon { background: none; border: none; cursor: pointer; padding: 5px; color: var(--text-color); } .btn-icon:hover { color: var(--primary-color); } table { width: 100%; border-collapse: collapse; margin-top: 20px; } th, td { padding: 12px 15px; text-align: left; border-bottom: 1px solid var(--border-color); } thead th { background-color: #f8f9fa; font-weight: bold; } tbody tr:hover { background-color: #f1f3f5; } .status-badge { padding: 4px 8px; border-radius: 12px; font-size: 0.8em; color: white; text-align: center; } .status-pending { background-color: var(--warning-color); } .status-progress { background-color: var(--info-color); } .status-completed { background-color: var(--success-color); } .status-cancelled { background-color: var(--danger-color); } .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.6); display: flex; justify-content: center; align-items: center; z-index: 1000; } .modal-content { background: white; padding: 30px; border-radius: 8px; width: 500px; max-width: 90%; box-shadow: 0 10px 25px rgba(0,0,0,0.1); } .modal-header { font-size: 1.5em; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; } .form-group { margin-bottom: 15px; } .form-group label { display: block; margin-bottom: 5px; font-weight: bold; } .form-group input, .form-group select { width: 100%; padding: 10px; border: 1px solid var(--border-color); border-radius: 4px; box-sizing: border-box; } .form-actions { text-align: right; margin-top: 20px; } .form-actions .btn { margin-left: 10px; } </style> </head> <body> <div id="app"> <template v-if="isDbReady"> <div class="sidebar"> <div class="sidebar-header"> <svg class="logo" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 534H534v192c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V534H298c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h172V298c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v172h192c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8z"/></svg> <span>MES 系统</span> </div> .........完整代码请登录后点击上方下载按钮下载查看
网友评论0