Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
8947617f
提交
8947617f
authored
4月 22, 2025
作者:
lidongxu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(mobile/promotion): 促销移动端_和 PC 端的计划新增联动测试完毕
同上
上级
e4b5f1f9
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
71 行增加
和
26 行删除
+71
-26
index.vue
src/mobile/components/PickerCalendar/index.vue
+34
-0
main.js
src/mobile/main.js
+5
-2
index.vue
src/mobile/views/promotion/plan/editing/index.vue
+31
-17
plan-search.vue
src/mobile/views/promotion/plan/index/plan-search.vue
+1
-7
没有找到文件。
src/mobile/components/PickerCalendar/index.vue
0 → 100644
浏览文件 @
8947617f
<
template
>
<van-calendar
:show-mark=
"false"
:min-date=
"searchMinDate"
:max-date=
"searchMaxDate"
type=
"range"
allow-same-day
teleport=
"body"
/>
</
template
>
<
script
setup
>
const
props
=
defineProps
({
setNextMaxMonth
:
{
// 设置下一个月的最大日期为最大范围
type
:
Boolean
,
default
:
false
}
})
// 设置最小日期选择范围
const
searchMinDate
=
computed
(()
=>
{
// 默认为今年 1 月 1 日
return
new
Date
(
new
Date
().
getFullYear
(),
0
,
1
)
})
// 设置最大日期选择范围
const
searchMaxDate
=
computed
(()
=>
{
if
(
props
.
setNextMaxMonth
)
{
// 设置下个月最后一日为最大范围
return
new
Date
(
new
Date
().
getFullYear
(),
new
Date
().
getMonth
()
+
2
,
0
)
}
else
{
// 默认为当前日期的六个月后
return
new
Date
(
new
Date
().
getFullYear
(),
new
Date
().
getMonth
()
+
6
,
new
Date
().
getDate
())
}
})
</
script
>
src/mobile/main.js
浏览文件 @
8947617f
import
{
isMobile
}
from
'@/utils'
import
{
isMobile
}
from
'@/utils'
// 移动端组件
// 移动端组件
// 选择搜索列表
import
PickerSearch
from
'./components/PickerSearch'
import
PickerSearch
from
'./components/PickerSearch'
// 选择日期
import
PickerCalendar
from
'./components/PickerCalendar'
// 只有在移动端引入
// 只有在移动端引入
if
(
isMobile
())
{
if
(
isMobile
())
{
...
@@ -20,6 +23,6 @@ if (isMobile()) {
...
@@ -20,6 +23,6 @@ if (isMobile()) {
}
}
export
default
function
(
app
)
{
export
default
function
(
app
)
{
// 移动端组件
app
.
component
(
'PickerSearch'
,
PickerSearch
);
app
.
component
(
'Picker
Search'
,
PickerSearch
)
app
.
component
(
'Picker
Calendar'
,
PickerCalendar
);
}
}
src/mobile/views/promotion/plan/editing/index.vue
浏览文件 @
8947617f
...
@@ -25,11 +25,11 @@
...
@@ -25,11 +25,11 @@
:value=
"form.storeName"
:value=
"form.storeName"
name=
"storeName"
name=
"storeName"
placeholder=
"点击选择门店"
>
placeholder=
"点击选择门店"
>
<p>
{{
form
.
storeAddr
}}
-
{{
form
.
storeCode
}}
</p>
<p
v-if=
"form.storeName"
>
{{
form
.
storeAddr
}}
-
{{
form
.
storeCode
}}
</p>
</div>
</div>
</
template
>
</
template
>
</van-field>
</van-field>
<van-field
v-model=
"form.date
"
<van-field
:modelValue=
"parseTime(form.date, '{y}-{m}-{d}')
"
is-link
is-link
readonly
readonly
:disabled=
"!!planId"
:disabled=
"!!planId"
...
@@ -38,7 +38,13 @@
...
@@ -38,7 +38,13 @@
placeholder=
"点击选择时间"
placeholder=
"点击选择时间"
required
required
:rules=
"[{ required: true, message: '请选择日期' }]"
:rules=
"[{ required: true, message: '请选择日期' }]"
@
click=
"selDate"
/>
@
click=
"selCalendar"
/>
<PickerCalendar
v-model:show=
"showCalendar"
:default-date=
"form.date"
:min-date=
"new Date()"
setNextMaxMonth
type=
"single"
@
confirm=
"confirmCalendar"
/>
<van-field
v-model=
"form.pattern"
<van-field
v-model=
"form.pattern"
is-link
is-link
readonly
readonly
...
@@ -128,14 +134,14 @@
...
@@ -128,14 +134,14 @@
:searchShow=
"showPickerSearch"
:searchShow=
"showPickerSearch"
@
search=
"search"
@
search=
"search"
@
confirm=
"confirm"
></PickerSearch>
@
confirm=
"confirm"
></PickerSearch>
<
van-popup
v-model:show=
"showDatePicke
r"
<
!-- <van-popup v-model:show="showCalenda
r"
destroy-on-close
destroy-on-close
position="bottom">
position="bottom">
<van-date-picker
v-model=
"
selDate
Arr"
<van-date-picker v-model="
confirmCalendar
Arr"
@confirm="onConfirmDate"
@confirm="onConfirmDate"
:min-date="minDate"
:min-date="minDate"
:max-date="maxDate" />
:max-date="maxDate" />
</van-popup>
</van-popup>
-->
<van-popup
v-model:show=
"showInTimePicker"
<van-popup
v-model:show=
"showInTimePicker"
destroy-on-close
destroy-on-close
position=
"bottom"
>
position=
"bottom"
>
...
@@ -241,19 +247,27 @@ const getStoreList = async (storeName) => {
...
@@ -241,19 +247,27 @@ const getStoreList = async (storeName) => {
getStoreList
()
getStoreList
()
// 活动日期
// 活动日期
const
showDatePicker
=
ref
(
false
)
const
showCalendar
=
ref
(
false
)
const
selDateArr
=
ref
([])
const
selCalendar
=
()
=>
{
const
minDate
=
ref
(
''
)
showCalendar
.
value
=
true
const
maxDate
=
ref
(
''
)
}
const
selDate
=
()
=>
{
const
confirmCalendar
=
(
value
)
=>
{
showDatePicker
.
value
=
true
form
.
date
=
value
selDateArr
.
value
=
form
.
date
?
form
.
date
.
split
(
'-'
)
:
[
new
Date
().
getFullYear
(),
new
Date
().
getMonth
()
+
1
,
new
Date
().
getDate
()]
showCalendar
.
value
=
false
minDate
.
value
=
new
Date
(
new
Date
().
getFullYear
(),
new
Date
().
getMonth
(),
new
Date
().
getDate
())
// 最大值到下个月最后一天
maxDate
.
value
=
new
Date
(
new
Date
().
getFullYear
(),
new
Date
().
getMonth
()
+
2
,
0
)
}
}
const
searchMinDate
=
ref
({})
// 最小日期范围
const
confirmCalendarArr
=
ref
([])
const
maxDate
=
ref
(
''
)
// const confirmCalendar = () => {
// showCalendar.value = true
// confirmCalendarArr.value = form.date ? form.date.split('-') : [new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate()]
// searchMinDate.value = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate())
// // 最大值到下个月最后一天
// maxDate.value = new Date(new Date().getFullYear(), new Date().getMonth() + 2, 0)
// }
const
onConfirmDate
=
(
value
)
=>
{
const
onConfirmDate
=
(
value
)
=>
{
show
DatePicke
r
.
value
=
false
show
Calenda
r
.
value
=
false
form
.
date
=
value
?.
selectedValues
.
join
(
'-'
)
form
.
date
=
value
?.
selectedValues
.
join
(
'-'
)
}
}
...
...
src/mobile/views/promotion/plan/index/plan-search.vue
浏览文件 @
8947617f
...
@@ -21,15 +21,9 @@
...
@@ -21,15 +21,9 @@
placeholder=
"选择日期"
placeholder=
"选择日期"
@
click=
"selSearchCalendar"
>
@
click=
"selSearchCalendar"
>
</van-field>
</van-field>
<van-calendar
v-model:show=
"showCalendar"
<PickerCalendar
v-model:show=
"showCalendar"
:min-date=
"searchMinDate"
:show-mark=
"false"
type=
"range"
allow-same-day
teleport=
"body"
:default-date=
"[query.activityStartDate, query.activityEndDate]"
:default-date=
"[query.activityStartDate, query.activityEndDate]"
@
confirm=
"confirmCalendar"
/>
@
confirm=
"confirmCalendar"
/>
<!-- 活动类型 -->
<!-- 活动类型 -->
<van-field
v-model=
"query.planStatus"
<van-field
v-model=
"query.planStatus"
is-link
is-link
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论