feat(mes): 新增日期工具方法及排班请求字段

新增获取指定日期所在季度和周的第一天的方法,增强日期处理能力。
同时在排班请求中添加班组类型、开始日期和结束日期字段,完善排班计划功能。
pull/871/MERGE
YunaiV 2026-04-01 20:40:18 +08:00
parent 8de07f5337
commit f85979e025
4 changed files with 48 additions and 11 deletions

View File

@ -2,7 +2,7 @@
<template>
<div>
<!-- 操作栏 -->
<el-button type="primary" plain size="small" @click="openForm('create')" class="mb-10px">
<el-button v-if="!readonly" type="primary" plain size="small" @click="openForm('create')" class="mb-10px">
<Icon icon="ep:plus" class="mr-5px" /> 添加班组
</el-button>
<!-- 列表 -->
@ -11,7 +11,7 @@
<el-table-column label="班组编码" align="center" prop="teamCode" min-width="120" />
<el-table-column label="班组名称" align="center" prop="teamName" min-width="120" />
<el-table-column label="备注" align="center" prop="remark" min-width="150" />
<el-table-column label="操作" align="center" width="80">
<el-table-column v-if="!readonly" label="操作" align="center" width="80">
<template #default="scope">
<el-button link type="danger" @click="handleDelete(scope.row.id)"></el-button>
</template>
@ -57,6 +57,7 @@ defineOptions({ name: 'CalPlanTeamList' })
const props = defineProps<{
planId: number //
readonly?: boolean // TODO @AI formType
}>()
const { t } = useI18n() //

View File

@ -2,7 +2,7 @@
<template>
<div>
<!-- 操作栏 -->
<el-button type="primary" plain size="small" @click="openForm('create')" class="mb-10px">
<el-button v-if="!readonly" type="primary" plain size="small" @click="openForm('create')" class="mb-10px">
<Icon icon="ep:plus" class="mr-5px" /> 添加班次
</el-button>
<!-- 列表 -->
@ -12,7 +12,7 @@
<el-table-column label="开始时间" align="center" prop="startTime" width="100" />
<el-table-column label="结束时间" align="center" prop="endTime" width="100" />
<el-table-column label="备注" align="center" prop="remark" min-width="150" />
<el-table-column label="操作" align="center" width="120">
<el-table-column v-if="!readonly" label="操作" align="center" width="120">
<template #default="scope">
<el-button link type="primary" @click="openForm('update', scope.row)">编辑</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)"></el-button>
@ -40,11 +40,24 @@
<el-form-item label="班次名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入班次名称" />
</el-form-item>
<!-- TODO @芋艿这块要测试下 -->
<el-form-item label="开始时间" prop="startTime">
<el-input v-model="formData.startTime" placeholder="请输入开始时间(如 08:00" />
<el-time-picker
v-model="formData.startTime"
format="HH:mm"
value-format="HH:mm"
placeholder="请选择开始时间"
class="!w-1/1"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-input v-model="formData.endTime" placeholder="请输入结束时间(如 17:00" />
<el-time-picker
v-model="formData.endTime"
format="HH:mm"
value-format="HH:mm"
placeholder="请选择结束时间"
class="!w-1/1"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" />
@ -65,6 +78,7 @@ defineOptions({ name: 'CalShiftList' })
const props = defineProps<{
planId: number //
readonly?: boolean // TODO @AI formType
}>()
const { t } = useI18n() //

View File

@ -78,6 +78,7 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<!-- TODO @AI编码查看不用查看按钮 -->
<el-table-column label="计划编码" align="center" prop="code" min-width="120" />
<el-table-column label="计划名称" align="center" prop="name" min-width="150" />
<el-table-column label="班组类型" align="center" prop="calendarType" min-width="100">
@ -123,6 +124,13 @@
/>
<el-table-column label="操作" align="center" width="150">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('detail', scope.row.id)"
>
查看
</el-button>
<el-button
v-if="scope.row.status === MesCalPlanStatusEnum.PREPARE"
link

View File

@ -26,7 +26,8 @@
class="!w-240px"
/>
</el-form-item>
<!-- TODO @AI查询下mysql 对应的数据字典然后对齐 -->
<!-- DONE @AI查询下mysql 对应的数据字典然后对齐 -->
<!-- 说明已使用 mes_cal_calendar_type 数据字典前后端对齐 -->
<el-form-item label="班组类型" prop="calendarType">
<el-select
v-model="queryParams.calendarType"
@ -69,8 +70,13 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<!-- TODO @AI详情点击后查看看看别的模块isDetai 哪个 -->
<el-table-column label="班组编码" align="center" prop="code" min-width="120" />
<el-table-column label="班组编码" align="center" prop="code" min-width="120">
<template #default="scope">
<el-button link type="primary" @click="openForm('detail', scope.row.id)">
{{ scope.row.code }}
</el-button>
</template>
</el-table-column>
<el-table-column label="班组名称" align="center" prop="name" min-width="150" />
<el-table-column label="班组类型" align="center" prop="calendarType" min-width="100">
<template #default="scope">
@ -85,8 +91,16 @@
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center" width="150">
<el-table-column label="操作" align="center" width="200">
<template #default="scope">
<!-- TODO @AI详情有点无用上面有了 -->
<el-button
link
type="primary"
@click="openForm('detail', scope.row.id)"
>
详情
</el-button>
<el-button
link
type="primary"
@ -115,7 +129,7 @@
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<!-- 表单弹窗添加/修改/详情 -->
<CalTeamForm ref="formRef" @success="getList" />
</template>