diff --git a/index.html b/index.html
index 45e7f61..5cb249f 100644
--- a/index.html
+++ b/index.html
@@ -57,7 +57,7 @@ body { background: var(--background); font-family: -apple-system, BlinkMacSystem
/* ===== 模块网格 ===== */
.module-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; align-items: stretch; }
-.module-grid--center { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; max-width: 960px; margin: 0 auto; align-items: stretch; }
+.module-grid--center { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; margin: 0 auto; align-items: stretch; }
/* ===== 角色分组 ===== */
.role-group { margin-bottom: 28px; text-align: center; }
@@ -71,6 +71,9 @@ body { background: var(--background); font-family: -apple-system, BlinkMacSystem
.role-icon--onsite { background: linear-gradient(135deg, #faad14, #ffc53d); }
.role-icon--admin { background: linear-gradient(135deg, #eb2f96, #ff85c0); }
.role-icon--shared { background: linear-gradient(135deg, #13c2c2, #5cdbd3); }
+.role-icon--miniprogram { background: linear-gradient(135deg, #52c41a, #95de64); }
+.role-icon--screen { background: linear-gradient(135deg, #722ED1, #b37feb); }
+.role-icon--pad { background: linear-gradient(135deg, #1677FF, #69b1ff); }
/* ===== 呼吸灯动画 ===== */
@keyframes breathe {
@@ -165,12 +168,13 @@ const ICONS = {
web: '',
app: '',
emergency: '',
+ other: '',
page: '',
dialog: '',
empty: '',
prd: '',
prdSmall: '',
- role: { expert:'👨⚕', assistant:'🤖', operator:'📋', professional:'👷', onsite:'🏥', admin:'⚙', shared:'🔗' }
+ role: { expert:'👨⚕', assistant:'🤖', operator:'📋', professional:'👷', onsite:'🏥', admin:'⚙', shared:'🔗', miniprogram:'📱', screen:'🖥', pad:'📋' }
};
const SITE_MAP = [
@@ -277,6 +281,7 @@ const SITE_MAP = [
{ file:'prod-proc-stats.html', label:'加工统计' },
{ file:'prod-qc-daily.html', label:'日常质检' },
{ file:'prod-qc-nutrition.html', label:'营养质检' },
+ { file:'prod-qc-nutrition-add.html', label:'营养质检-新增' },
{ file:'ano-dirty.html', label:'系统脏数据' },
{ file:'ano-result.html', label:'结果异常' }
]},
@@ -638,7 +643,14 @@ const SITE_MAP = [
{file:'index.html',label:'消息列表'},{file:'contacts.html',label:'通讯录'},{file:'im-chat.html',label:'聊天'}
]}
]
- }
+ },
+ { id:'other-terminals', label:'其他终端', icon:'other', color:'#b37feb', modules:[
+ { name:'营养管理小程序', dir:'other-terminals/mini-program', pages:[] },
+ { name:'西安应急中心大屏', dir:'other-terminals/emergency-screen/xian-center', pages:[] },
+ { name:'标准版中心大屏', dir:'other-terminals/emergency-screen/standard-center', pages:[] },
+ { name:'九厂应急中心大屏', dir:'other-terminals/emergency-screen/jiuchang-center', pages:[] },
+ { name:'医疗点PAD端', dir:'other-terminals/medical-pad', pages:[] }
+ ]}
];
/* ===== 渲染逻辑 ===== */
@@ -741,9 +753,11 @@ SITE_MAP.forEach((t, i) => {
html += r.modules.map(m => cardHTML(m, 'u' + uidCounter++)).join('');
html += '';
});
- html += `
${ICONS.role.shared}全角色共享
`;
- html += t.shared.map(m => cardHTML(m, 'u' + uidCounter++)).join('');
- html += '
';
+ if (t.shared && t.shared.length > 0) {
+ html += `${ICONS.role.shared}全角色共享
`;
+ html += t.shared.map(m => cardHTML(m, 'u' + uidCounter++)).join('');
+ html += '
';
+ }
}
div.innerHTML = html;
tabContents.appendChild(div);
diff --git a/other-module/emergency-screen/jiuchang-center/.gitkeep b/other-module/emergency-screen/jiuchang-center/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/other-module/emergency-screen/standard-center/.gitkeep b/other-module/emergency-screen/standard-center/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/other-module/emergency-screen/xian-center/.gitkeep b/other-module/emergency-screen/xian-center/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/other-module/medical-pad/.gitkeep b/other-module/medical-pad/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/other-module/mini-program/.gitkeep b/other-module/mini-program/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/web-admin/nutrition/din-dish-add.html b/web-admin/nutrition/din-dish-add.html
index 12abdf4..92d2819 100644
--- a/web-admin/nutrition/din-dish-add.html
+++ b/web-admin/nutrition/din-dish-add.html
@@ -44,9 +44,17 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:16px;}
.breadcrumb a{color:var(--primary);text-decoration:none;}.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb__sep{color:var(--text-placeholder);}
-.form-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:24px;margin-bottom:16px;}
-.form-card__title{font-size:var(--font-base);font-weight:600;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border);}
+/* Tab表单样式 */
+.form-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;}
+.form-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 24px;flex-wrap:wrap;}
+.form-tab{padding:14px 16px;font-size:var(--font-sm);cursor:pointer;color:var(--text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s;display:flex;align-items:center;gap:5px;}
+.form-tab:hover{color:var(--primary);}
+.form-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:500;}
+.form-tab.done{color:var(--success);}
+.form-panel{display:none;padding:24px;}
+.form-panel.active{display:block;}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 24px;}
+.form-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 24px;}
.form-group{display:flex;flex-direction:column;gap:6px;}
.form-group.full{grid-column:1/-1;}
.form-label{font-size:var(--font-sm);color:var(--text-secondary);}
@@ -58,7 +66,37 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei
.btn{height:36px;padding:0 16px;border-radius:var(--radius-sm);font-size:var(--font-sm);cursor:pointer;border:none;transition:all .2s;display:inline-flex;align-items:center;gap:6px;text-decoration:none;}
.btn-primary{background:var(--primary);color:#fff;}.btn-primary:hover{background:#40a9ff;}
.btn-default{background:#fff;color:var(--text-primary);border:1px solid var(--border);}.btn-default:hover{color:var(--primary);border-color:var(--primary);}
-.form-footer{display:flex;align-items:center;gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border);}
+.btn-success{background:var(--success);color:#fff;}.btn-success:hover{background:#73d13d;}
+.form-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid var(--border);}
+.form-footer__left{display:flex;gap:8px;}
+.form-footer__right{display:flex;gap:8px;}
+/* 食材表格 */
+.ingredient-table{width:100%;border-collapse:collapse;font-size:var(--font-sm);margin-top:12px;}
+.ingredient-table th{background:#FAFAFA;padding:10px 12px;text-align:left;color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);}
+.ingredient-table td{padding:10px 12px;border-bottom:1px solid #F0F0F0;color:var(--text-primary);}
+.ingredient-table tr:hover{background:#F8FBFF;}
+.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);}
+.tag-green{background:#F6FFED;color:var(--success);}
+.tag-gray{background:#F5F5F5;color:#999;}
+.link{color:var(--primary);cursor:pointer;font-size:var(--font-sm);text-decoration:none;}.link:hover{color:#40a9ff;}
+/* 弹窗 */
+.dialog-mask{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.45);z-index:200;align-items:center;justify-content:center;}
+.dialog-mask.open{display:flex;}
+.dialog{background:#fff;border-radius:var(--radius-lg);width:560px;max-width:90vw;box-shadow:var(--shadow-md);}
+.dialog__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border);}
+.dialog__title{font-size:var(--font-lg);font-weight:600;color:var(--text-primary);}
+.dialog__close{width:32px;height:32px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-placeholder);}
+.dialog__close:hover{background:#F5F5F5;color:var(--text-primary);}
+.dialog__body{padding:24px;}
+.dialog__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border);}
+.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
+.form-row .form-group{margin-bottom:16px;}
+.form-row .form-group label{display:block;font-size:var(--font-sm);color:var(--text-primary);margin-bottom:8px;font-weight:500;}
+/* 上传区域 */
+.upload-area{border:2px dashed var(--border);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-placeholder);cursor:pointer;transition:all .2s;}
+.upload-area:hover{border-color:var(--primary);color:var(--primary);}
+.upload-area__icon{font-size:36px;margin-bottom:8px;}
+.upload-area__text{font-size:var(--font-sm);}
@@ -125,101 +163,195 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei
-
-