You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为调度器配置条件匹配规则,实现对应列的自动着色

调度器列校验实现方案

你需要的功能可以按以下逻辑落地:

核心校验规则

每次取单日对应的整列数据做两次校验,只要触发任意一条规则就对该列做着色处理:

  1. 列内必须同时存在至少1次F(早班)和S(晚班),缺任意一个就触发着色
  2. 列内U(休假)、SCH(培训)、ZA(补休)三个值的总出现次数不能超过3次,超过就触发着色

常见场景实现示例

Excel 条件格式实现

选中所有单日数据列,新建条件格式,选择「使用公式确定要设置格式的单元格」,输入公式:

=OR(COUNTIF(A:A,"F")=0,COUNTIF(A:A,"S")=0,COUNTIF(A:A,"U")+COUNTIF(A:A,"SCH")+COUNTIF(A:A,"ZA")>3)

把公式里的A替换为你选中区域的第一列列标,再设置你需要的高亮填充色,应用到所有单日列即可生效。

前端表格实现(以Element UI 为例)

// 提前按列缓存校验结果
const columnValidMap = {}

// 校验单列的方法
function validateSingleColumn(colData) {
  const hasMorning = colData.some(v => v === 'F')
  const hasNight = colData.some(v => v === 'S')
  const restCount = colData.filter(v => ['U', 'SCH', 'ZA'].includes(v)).length
  return !hasMorning || !hasNight || restCount > 3
}

// 表格样式回调
<el-table :cell-style="cellStyleCallback">
// 回调逻辑
const cellStyleCallback = ({ column }) => {
  // 仅校验标识为单日的列
  if (column.prop.startsWith('day_')) {
    if (columnValidMap[column.prop]) {
      return { backgroundColor: '#f87171' }
    }
  }
  return {}
}

Python 数据处理实现(Pandas 为例)

import pandas as pd

def highlight_invalid_column(col):
    has_f = (col == 'F').any()
    has_s = (col == 'S').any()
    special_cnt = col.isin(['U', 'SCH', 'ZA']).sum()
    # 不符合规则的整列标红
    return ['background-color: #fca5a5'] * len(col) if not has_f or not has_s or special_cnt > 3 else [''] * len(col)

# 输出带样式的表格
styled_schedule = df.style.apply(highlight_invalid_column, axis=0)

内容的提问来源于stack exchange,提问作者Klaus Koziol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:09:04