当前位置:首页 > VUE

vue实现工厂排班

2026-01-19 05:10:28VUE

Vue实现工厂排班系统

数据模型设计

使用Vue的响应式数据管理排班信息,核心数据结构包括员工列表、班次类型、日期范围等。例如:

data() {
  return {
    employees: [
      { id: 1, name: '张三', department: '生产部' },
      { id: 2, name: '李四', department: '质检部' }
    ],
    shifts: ['早班', '中班', '晚班'],
    schedule: {} // 以日期为key的排班记录
  }
}

可视化排班表

通过动态表格展示排班信息,使用v-for循环渲染日期和员工。建议采用类似日历的横向布局,日期作为列头,员工作为行头。

<table class="schedule-table">
  <thead>
    <tr>
      <th>员工/日期</th>
      <th v-for="date in dateRange" :key="date">{{ formatDate(date) }}</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="emp in employees" :key="emp.id">
      <td>{{ emp.name }}</td>
      <td v-for="date in dateRange" :key="date">
        <select v-model="schedule[date][emp.id]">
          <option v-for="shift in shifts" :value="shift">{{ shift }}</option>
        </select>
      </td>
    </tr>
  </tbody>
</table>

交互功能实现

添加班次调整的拖拽功能需要引入第三方库如vuedraggable,或手动实现拖拽事件:

methods: {
  handleDragStart(emp, date) {
    this.draggedItem = { emp, date }
  },
  handleDrop(targetEmp, targetDate) {
    // 交换班次逻辑
  }
}

数据持久化

通过axios与后端API交互保存排班数据:

saveSchedule() {
  axios.post('/api/schedule', this.schedule)
    .then(response => {
      this.$message.success('排班已保存')
    })
}

高级功能扩展

实现批量排班功能可添加以下方法:

batchAssign(shift, days, dept) {
  this.employees
    .filter(emp => emp.department === dept)
    .forEach(emp => {
      days.forEach(day => {
        this.$set(this.schedule[day], emp.id, shift)
      })
    })
}

样式优化

使用CSS Grid或Flex布局增强可视化效果:

.schedule-table {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}
.shift-cell {
  background-color: var(--shift-color);
  min-height: 40px;
}

vue实现工厂排班

标签: 工厂vue
分享给朋友:

相关文章

vue实现静态查询

vue实现静态查询

Vue 实现静态查询 在 Vue 中实现静态查询通常指不依赖后端接口,直接在前端处理数据筛选或搜索功能。以下是几种常见实现方式: 使用计算属性过滤数据 通过计算属性对静态数据进行筛选,适合简单查询场…

vue实现视频开场

vue实现视频开场

使用 Vue 实现视频开场动画 在 Vue 中实现视频开场动画可以通过结合 HTML5 的 <video> 标签和 Vue 的过渡效果或生命周期钩子来完成。以下是具体实现方法: 安装依…

vue实现选择季度

vue实现选择季度

Vue 实现选择季度的几种方法 使用下拉选择框(Select) 在 Vue 中可以通过 v-model 绑定一个下拉选择框来实现季度选择。数据可以预先定义为一个包含季度选项的数组。 <…

vue查看更多怎么实现

vue查看更多怎么实现

实现 Vue 的“查看更多”功能 数据截取与显示控制 通过 v-if 或 v-show 控制内容的显示与隐藏。初始状态下只显示部分内容,点击“查看更多”后展开完整内容。 <template&g…

vue实现点击页面切换

vue实现点击页面切换

实现点击页面切换功能 在Vue中实现点击页面切换功能,可以通过路由跳转或组件动态渲染两种方式完成。以下是具体实现方法: 使用Vue Router实现页面跳转 安装Vue Router后,在项目中…

vue实现列表显示

vue实现列表显示

Vue 实现列表显示的方法 在 Vue 中实现列表显示通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式。 基本列表渲染 通过 v-for 指令遍历数组,动态生成列…