aps-agent/aps-frontend/pages/schedule-params.html

67 lines
4.1 KiB
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>
<link rel="stylesheet" href="../css/common.css">
</head>
<body>
<div id="app">
<header class="header" id="header"></header>
<div class="body">
<aside class="sidebar" id="sidebar"></aside>
<main class="main">
<h1 class="page-title">排产参数设置</h1>
<div class="row">
<div class="col-6">
<div class="card">
<div class="card-header">时间参数</div>
<div class="card-body">
<div class="form-row"><div class="form-group"><label>计划展望期(天)</label><input id="sp_horizon" type="number" value="30"></div><div class="form-group"><label>排产时间粒度(分钟)</label><input id="sp_grain" type="number" value="15"></div></div>
<div class="form-row"><div class="form-group"><label>滚动排产 Cron</label><input id="sp_cron" value="0 0 * * *"></div><div class="form-group"><label>交期缓冲系数</label><input id="sp_buffer" type="number" step="0.05" value="0.95"></div></div>
</div>
</div>
</div>
<div class="col-6">
<div class="card">
<div class="card-header">引擎与约束</div>
<div class="card-body">
<div class="form-row"><div class="form-group"><label>默认引擎</label><select id="sp_engine"><option>HYBRID</option><option>RULE</option><option>CP</option><option>GA</option></select></div><div class="form-group"><label>最大求解时间(秒)</label><input id="sp_maxtime" type="number" value="300"></div></div>
<div class="form-row"><div class="form-group"><label>物料齐套检查</label><select id="sp_ckmat"><option value="true">是</option><option value="false">否</option></select></div><div class="form-group"><label>换线时间计算</label><select id="sp_ckchange"><option value="true">是</option><option value="false">否</option></select></div></div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header">插单参数</div>
<div class="card-body">
<div class="form-row"><div class="form-group"><label>默认插单策略</label><select id="sp_rush"><option>STRATEGY_SHIFT</option><option>STRATEGY_SPLIT</option><option>STRATEGY_ALTERNATIVE</option><option>STRATEGY_OVERTIME</option></select></div><div class="form-group"><label>冻结时间窗口(小时)</label><input id="sp_freeze" type="number" value="24"></div></div>
</div>
</div>
<button class="btn btn-primary mt-2" onclick="saveParams()">保存参数</button>
</main>
</div>
</div>
<script src="../js/data.js"></script>
<script src="../js/common.js"></script>
<script>
initPage('schedule-params');
function saveParams() {
apsData.scheduleParams.planningHorizonDays = Number(document.getElementById('sp_horizon').value);
apsData.scheduleParams.timeGranularityMinutes = Number(document.getElementById('sp_grain').value);
apsData.scheduleParams.rollingScheduleCron = document.getElementById('sp_cron').value;
apsData.scheduleParams.deliveryBufferRatio = Number(document.getElementById('sp_buffer').value);
apsData.scheduleParams.defaultEngine = document.getElementById('sp_engine').value;
apsData.scheduleParams.maxSolveTimeSeconds = Number(document.getElementById('sp_maxtime').value);
apsData.scheduleParams.constraints.materialKit = document.getElementById('sp_ckmat').value === 'true';
apsData.scheduleParams.constraints.changeover = document.getElementById('sp_ckchange').value === 'true';
apsData.scheduleParams.rushStrategy = document.getElementById('sp_rush').value;
apsData.scheduleParams.freezeWindowHours = Number(document.getElementById('sp_freeze').value);
apsData.$utils.save(apsData);
showToast('保存成功', '排产参数已更新');
}
</script>
</body>
</html>