Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
e5863d04
提交
e5863d04
authored
7月 29, 2025
作者:
lidongxu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(promotion): 修改:促销计划中,新增和变更时弹框中去掉促销员工资和杂费,改为是否有促销台和活动品项,并增加午休开始和结束时间(PC 端完成)
上级
b3d55d64
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
194 行增加
和
35 行删除
+194
-35
effectivePlan.vue
src/views/promotion/plan/effectivePlan.vue
+169
-30
invalidPlan.vue
src/views/promotion/plan/invalidPlan.vue
+25
-5
没有找到文件。
src/views/promotion/plan/effectivePlan.vue
浏览文件 @
e5863d04
...
...
@@ -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'
}
],
incidental
s
:
[
prdClas
s
:
[
{
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
{
...
...
src/views/promotion/plan/invalidPlan.vue
浏览文件 @
e5863d04
...
...
@@ -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
:
1
0
0
label
:
"是否有促销台"
,
prop
:
"temWlSct"
,
width
:
1
2
0
},
{
label
:
'杂费'
,
prop
:
'incidentals'
,
label
:
"活动品项"
,
prop
:
"prdClass"
,
width
:
100
},
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论