提交 e5863d04 authored 作者: lidongxu's avatar lidongxu

refactor(promotion): 修改:促销计划中,新增和变更时弹框中去掉促销员工资和杂费,改为是否有促销台和活动品项,并增加午休开始和结束时间(PC 端完成)

上级 b3d55d64
......@@ -225,7 +225,6 @@
</el-row>
<el-row>
<el-col :span="12">
<!-- 上班打卡时间 -->
<el-form-item label="上班打卡时间"
prop="inTime">
<el-time-picker v-model="addOrEditPlanForm.inTime"
......@@ -234,6 +233,31 @@
value-format="HH:mm:ss" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="午休开始时间"
prop="noonOutTime">
<el-time-picker v-model="addOrEditPlanForm.noonOutTime"
placeholder="选择时间"
format="HH:mm"
value-format="HH:mm:ss"
@clear="addOrEditPlanForm.noonInTime = ''"
:disabled="!addOrEditPlanForm.inTime"
:disabled-hours="disabledHours('noonOutTime')"
:disabled-minutes="disabledMinutes('noonOutTime')" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="午休结束时间"
prop="noonInTime">
<el-time-picker v-model="addOrEditPlanForm.noonInTime"
placeholder="选择时间"
format="HH:mm"
value-format="HH:mm:ss"
:disabled="!addOrEditPlanForm.noonOutTime"
:disabled-hours="disabledHours('noonInTime')"
:disabled-minutes="disabledMinutes('noonInTime')" />
</el-form-item>
</el-col>
<el-col :span="12">
<!-- 下班打卡时间 -->
<el-form-item label="下班打卡时间"
......@@ -243,15 +267,36 @@
format="HH:mm"
value-format="HH:mm:ss"
:disabled="!addOrEditPlanForm.inTime"
:disabled-hours="disabledHours"
:disabled-minutes="disabledMinutes"
:disabled-seconds="disabledSeconds" />
:disabled-hours="disabledHours('outTime')"
:disabled-minutes="disabledMinutes('outTime')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<!-- 工资 -->
<el-form-item label="是否有试吃台"
prop="temWlSct">
<el-radio-group v-model="addOrEditPlanForm.temWlSct">
<el-radio label="有"
value="有" />
<el-radio label="无"
value="无" />
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="活动品项"
prop="prdClass">
<el-select v-model="addOrEditPlanForm.prdClass"
placeholder="选择品项">
<el-option v-for="item in prdList"
:key="item.value"
:label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="工资"
prop="salary">
<el-input-number v-model="addOrEditPlanForm.salary"
......@@ -259,13 +304,12 @@
</el-form-item>
</el-col>
<el-col :span="12">
<!-- 杂费 -->
<el-form-item label="杂费"
prop="incidentals">
<el-input-number v-model="addOrEditPlanForm.incidentals"
placeholder="请输入杂费" />
</el-form-item>
</el-col>
</el-col> -->
</el-row>
</el-form>
<template #footer>
......@@ -334,7 +378,7 @@ import { parseTime } from '@/utils'
const props = defineProps({
queryParams: {
type: Object,
type: Object
}
})
......@@ -423,7 +467,9 @@ const editFn = (row) => {
addOrEditPlanForm.value = {
...row,
inTime: parseTime(row.clockInTime, "{h}:{i}:{s}"),
outTime: parseTime(row.clockOutTime, "{h}:{i}:{s}")
outTime: parseTime(row.clockOutTime, "{h}:{i}:{s}"),
noonInTime: parseTime(row.noonClockInTime, "{h}:{i}:{s}"),
noonOutTime: parseTime(row.noonClockOutTime, "{h}:{i}:{s}"),
}
editDealerId.value = row.dealerId
getStoreList()
......@@ -480,6 +526,26 @@ const addOrEditPlanFormRules = reactive({
trigger: 'blur'
}
],
noonOutTime: [
{
message: '请选择中午打卡时间',
trigger: 'blur'
}
],
noonInTime: [
{
validator: (rule, value, callback) => {
// 如果填写了午休开始时间,则午休结束时间必填
if (addOrEditPlanForm.value.noonOutTime && !value) {
callback(new Error('请填写午休结束时间'));
} else {
callback();
}
},
message: '请选择中午打卡时间',
trigger: 'blur'
}
],
outTime: [
{
required: true,
......@@ -487,26 +553,54 @@ const addOrEditPlanFormRules = reactive({
trigger: 'blur'
}
],
salary: [
temWlSct: [
{
required: true,
message: '请输入工资',
message: '请选择是否有试吃台',
trigger: 'blur'
}
],
incidentals: [
prdClass: [
{
required: true,
message: '请输入杂费',
message: '请选择活动品项',
trigger: 'blur'
}
]
],
// salary: [
// {
// required: true,
// message: '请输入工资',
// trigger: 'blur'
// }
// ],
// incidentals: [
// {
// required: true,
// message: '请输入杂费',
// trigger: 'blur'
// }
// ]
})
// 获取门店列表
const storeList = ref([])
const allStoreList = ref([])
const selecteStoreInfo = ref('')
const isInfoError = ref(false)
const prdList = ref([
{
label: '老品',
value: '老品'
},
{
label: '黑鸭',
value: '黑鸭'
},
{
label: '散称',
value: '散称'
}
])
const getStoreList = async () => {
const { data } = await getPlanStoreListAPI({
storeNameVague: addOrEditPlanForm.value.storeName,
......@@ -584,24 +678,68 @@ const makeRange = (start, end) => {
}
return result
}
const disabledHours = (h) => {
// 根据上班时间选择的结果,禁用小时
const date = new Date(addOrEditPlanForm.value.nTime)
return makeRange(0, date.getHours() - 1);
}
const disabledMinutes = (h, m) => {
// 如果小时大于上班打卡时间小时,则不限制分钟
const inDate = new Date(addOrEditPlanForm.value.inTime)
if (h > inDate.getHours()) {
return makeRange(0, -1);
} else {
const date = new Date(addOrEditPlanForm.value.inTime)
return makeRange(0, date.getMinutes() - 1);
// 根据上班时间选择的结果,禁用小时
const disabledHours = (key) => {
if (key === 'noonOutTime') {
return () => {
const time = addOrEditPlanForm.value.inTime
if (!time) return
const [hours, minutes, seconds] = time.split(':').map(Number)
return makeRange(0, hours - 1)
}
} else if (key === 'noonInTime') {
return () => {
const time = addOrEditPlanForm.value.noonOutTime
if (!time) return
const [hours, minutes, seconds] = time.split(':').map(Number)
return makeRange(0, hours - 1)
}
} else if (key === 'outTime') {
return () => {
// 如果有午休结束时间则判断,否则用上班时间
const time = addOrEditPlanForm.value.noonInTime || addOrEditPlanForm.value.inTime
if (!time) return
const [hours, minutes, seconds] = time.split(':').map(Number)
return makeRange(0, hours - 1)
}
}
}
const disabledSeconds = (h, m, s) => {
const date = new Date(addOrEditPlanForm.value.inTime)
return makeRange(0, date.getSeconds() - 1);
// 如果小时大于上班打卡时间小时,则不限制分钟
const disabledMinutes = (key) => {
if (key === 'noonOutTime') {
return (h) => {
const time = addOrEditPlanForm.value.inTime
if (!time) return
const [hours, minutes, seconds] = time.split(':').map(Number)
if (h > hours) {
return makeRange(0, -1);
} else {
return makeRange(0, minutes - 1);
}
}
} else if (key === 'noonInTime') {
return (h) => {
const time = addOrEditPlanForm.value.noonOutTime
if (!time) return
const [hours, minutes, seconds] = time.split(':').map(Number)
if (h > hours) {
return makeRange(0, -1);
} else {
return makeRange(0, minutes - 1);
}
}
} else if (key === 'outTime') {
return (h) => {
const time = addOrEditPlanForm.value.noonInTime || addOrEditPlanForm.value.inTime
if (!time) return
const [hours, minutes, seconds] = time.split(':').map(Number)
if (h > hours) {
return makeRange(0, -1);
} else {
return makeRange(0, minutes - 1);
}
}
}
}
// 新增计划表单-选完以后去掉错误提示
......@@ -1105,6 +1243,7 @@ defineExpose({
margin: 0;
font-size: 12px;
color: gray;
white-space: nowrap;
}
.info_error {
......
......@@ -129,19 +129,39 @@ const columns = ref([
prop: 'clockInTime',
width: 180
},
{
label: '午休开始时间',
prop: 'noonClockOutTime',
width: 180
},
{
label: '午休结束时间',
prop: 'noonClockInTime',
width: 180
},
{
label: '下班时间',
prop: 'clockOutTime',
width: 180
},
// {
// label: '促销员薪资',
// prop: 'salary',
// width: 100
// },
// {
// label: '杂费',
// prop: 'incidentals',
// width: 100
// },
{
label: '促销员薪资',
prop: 'salary',
width: 100
label: "是否有促销台",
prop: "temWlSct",
width: 120
},
{
label: '杂费',
prop: 'incidentals',
label: "活动品项",
prop: "prdClass",
width: 100
},
{
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论