Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
35101c61
提交
35101c61
authored
9月 28, 2025
作者:
lidongxu
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'release' into dev
上级
37afade8
f5a0817c
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
242 行增加
和
39 行删除
+242
-39
display_schedule.js
src/api/promotion/display_schedule.js
+2
-2
index.vue
src/views/promotion/components/CommonPlan/index.vue
+2
-2
index.vue
src/views/promotion/display_schedule/index.vue
+1
-1
schedule_dis.vue
src/views/promotion/display_schedule/tabs/schedule_dis.vue
+129
-19
snack.vue
src/views/promotion/display_schedule/tabs/snack.vue
+108
-15
没有找到文件。
src/api/promotion/display_schedule.js
浏览文件 @
35101c61
...
...
@@ -70,7 +70,7 @@ export function submitDisplayScheduleDetail(data) {
url
:
`/operation/sales/ap_display/core_pro/
${
data
.
id
}
`
,
method
:
'PUT'
,
data
:
{
d
isplay
:
{
promotionD
isplay
:
{
...
data
,
id
:
undefined
// 不携带 id
}
...
...
@@ -97,7 +97,7 @@ export function submitSnackPlan(data) {
url
:
`/operation/sales/ap_display/core_snack/
${
data
.
id
}
`
,
method
:
'PUT'
,
data
:
{
d
isplay
:
{
snackD
isplay
:
{
...
data
,
id
:
undefined
// 不携带 id
}
...
...
src/views/promotion/components/CommonPlan/index.vue
浏览文件 @
35101c61
...
...
@@ -74,8 +74,8 @@
<
script
setup
>
import
{
h
}
from
'vue'
/*************** 操作类型 ***************/
//
const operation = ref('平铺模式');
const
operation
=
ref
(
'填报模式'
);
const
operation
=
ref
(
'平铺模式'
);
//
const operation = ref('填报模式');
const
tableRef
=
ref
(
null
)
const
props
=
defineProps
({
...
...
src/views/promotion/display_schedule/index.vue
浏览文件 @
35101c61
...
...
@@ -30,7 +30,7 @@ import Display from './tabs/display.vue'
import
Schedule
from
'./tabs/schedule.vue'
import
ScheduleDis
from
'./tabs/schedule_dis.vue'
import
Snack
from
'./tabs/snack.vue'
const
activeName
=
ref
(
'
档期陈列
'
);
const
activeName
=
ref
(
'
陈列计划
'
);
const
handleClickTabs
=
(
tab
)
=>
{
activeName
.
value
=
tab
.
name
;
}
...
...
src/views/promotion/display_schedule/tabs/schedule_dis.vue
浏览文件 @
35101c61
...
...
@@ -391,7 +391,7 @@
},
"fill"
:
true
,
"width"
:
140
,
requestKey
:
[
"actualEndCapExecuted"
]
requestKey
:
[
"actualEndCapExecuted"
,
"promotionDisplayExecuted"
]
},
{
"label"
:
"实际端架 - 是否执行"
,
...
...
@@ -434,25 +434,104 @@
"label"
:
"实际地堆 - 平米数(㎡)"
,
"prop"
:
"actualFloorStackArea"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
180
"type"
:
"select"
,
"fill"
:
true
,
"width"
:
180
,
referenceKey
:
"plannedFloorStackArea"
,
"options"
:
[
{
"label"
:
"0"
,
"value"
:
0
},
{
"label"
:
"0.5"
,
"value"
:
0.5
},
{
"label"
:
"0.8"
,
"value"
:
0.8
},
{
"label"
:
"1"
,
"value"
:
1
},
{
"label"
:
"2"
,
"value"
:
2
},
{
"label"
:
"3"
,
"value"
:
3
},
{
"label"
:
"4"
,
"value"
:
4
}
],
render
:
(
_
,
row
,
col
)
=>
{
return
(
<
div
>
<
span
>
{
row
[
col
.
referenceKey
]
||
'-'
}
<
/span
>
<
el
-
select
modelValue
=
{
row
[
col
.
prop
]}
onUpdate
:
modelValue
=
{(
value
)
=>
{
row
[
col
.
prop
]
=
value
;
submitChange
(
row
,
col
);
}}
disabled
=
{
!
row
[
col
.
referenceKey
]}
placeholder
=
""
>
{
col
.
options
.
map
(
item
=>
(
<
el
-
option
key
=
{
item
.
value
}
label
=
{
item
.
label
}
value
=
{
item
.
value
}
/
>
))}
<
/el-select
>
<
/div
>
)
},
requestKey
:
[
"actualFloorStackExecuted"
,
"promotionDisplayExecuted"
]
},
{
"label"
:
"实际地堆 - 数量"
,
"prop"
:
"actualFloorStackQty"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
140
"type"
:
"select"
,
"fill"
:
true
,
"width"
:
140
,
referenceKey
:
"plannedFloorStackQty"
,
"options"
:
[
{
"label"
:
"0"
,
"value"
:
0
},
{
"label"
:
"1"
,
"value"
:
1
},
{
"label"
:
"2"
,
"value"
:
2
},
{
"label"
:
"3"
,
"value"
:
3
}
],
requestKey
:
[
"actualFloorStackExecuted"
,
"promotionDisplayExecuted"
]
},
{
"label"
:
"实际地堆是否执行"
,
"prop"
:
"actualFloorStackExecuted"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
140
"type"
:
"formula"
,
"fill"
:
true
,
"width"
:
150
,
func
:
(
row
)
=>
{
row
.
actualFloorStackExecuted
=
row
.
actualFloorStackArea
>=
row
.
plannedFloorStackArea
&&
row
.
actualFloorStackQty
>=
row
.
plannedFloorStackQty
?
'是'
:
'否'
return
row
.
actualFloorStackExecuted
},
formulaStr
:
"执行平米数 >= 计划平米数,并且 执行地堆数量 >= 计划地堆数量"
},
{
"label"
:
"计划其他陈列数量 + 形式"
,
...
...
@@ -474,17 +553,42 @@
"label"
:
"实际其他陈列 - 数量 + 形式"
,
"prop"
:
"actualOtherDisplay"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
190
"type"
:
"input"
,
"fill"
:
true
,
"width"
:
190
,
referenceKey
:
"plannedOtherDisplay"
,
render
:
(
_
,
row
,
col
)
=>
{
return
(
<
div
>
<
span
>
{
row
[
col
.
referenceKey
]
||
'-'
}
<
/span
>
<
div
>
<
el
-
input
modelValue
=
{
row
[
col
.
prop
]}
onUpdate
:
modelValue
=
{(
value
)
=>
{
row
[
col
.
prop
]
=
value
;
submitChange
(
row
,
col
);
}}
disabled
=
{
!
row
[
col
.
referenceKey
]}
placeholder
=
""
clearable
/>
<
/div
>
<
/div
>
)
},
requestKey
:
[
"actualOtherDisplayExecuted"
,
"promotionDisplayExecuted"
]
},
{
"label"
:
"实际其他陈列 - 是否执行"
,
"prop"
:
"actualOtherDisplayExecuted"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
170
"type"
:
"formula"
,
"fill"
:
true
,
"width"
:
190
,
func
:
(
row
)
=>
{
row
.
actualOtherDisplayExecuted
=
!
row
.
actualOtherDisplay
?
'否'
:
'是'
return
row
.
actualOtherDisplayExecuted
},
formulaStr
:
"执行其他陈列数量 + 形式,是否等于计划其他陈列数量 + 形式"
},
{
"label"
:
"合计费用 - 费用"
,
...
...
@@ -498,9 +602,15 @@
"label"
:
"档期陈列是否执行"
,
"prop"
:
"promotionDisplayExecuted"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
140
"type"
:
"formula"
,
"fill"
:
true
,
"width"
:
160
,
func
:
(
row
)
=>
{
// 实际端架-是否执行 && 实际地堆是否执行 && 实际其他陈列-是否执行
row
.
promotionDisplayExecuted
=
row
.
actualEndShelfExecuted
===
'是'
&&
row
.
actualFloorStackExecuted
===
'是'
&&
row
.
actualOtherDisplayExecuted
===
'是'
?
'是'
:
'否'
return
row
.
promotionDisplayExecuted
},
formulaStr
:
"实际端架-是否执行 === '是',并且 实际地堆是否执行 === '是',并且 实际其他陈列-是否执行 === '是'"
},
{
"label"
:
"付费陈列 - 是否"
,
...
...
src/views/promotion/display_schedule/tabs/snack.vue
浏览文件 @
35101c61
...
...
@@ -219,17 +219,59 @@
"label"
:
"实际 - 陈列形式"
,
"prop"
:
"actualDisplay"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
130
"type"
:
"select"
,
"fill"
:
true
,
"width"
:
130
,
"options"
:
[
{
"label"
:
"端架"
,
"value"
:
"端架"
},
{
"label"
:
"收银台"
,
"value"
:
"收银台"
},
{
"label"
:
"端架和收银台"
,
"value"
:
"端架和收银台"
}
],
render
:
(
_
,
row
,
col
)
=>
{
return
(
<
div
>
<
span
>
{
row
[
col
.
referenceKey
]
||
'-'
}
<
/span
>
<
el
-
select
modelValue
=
{
row
[
col
.
prop
]}
onUpdate
:
modelValue
=
{(
value
)
=>
{
row
[
col
.
prop
]
=
value
;
submitChange
(
row
,
col
);
}}
disabled
=
{
!
row
[
col
.
referenceKey
]}
placeholder
=
""
>
{
col
.
options
.
map
(
item
=>
(
<
el
-
option
key
=
{
item
.
value
}
label
=
{
item
.
label
}
value
=
{
item
.
value
}
/
>
))}
<
/el-select
>
<
/div
>
)
},
requestKey
:
[
"displayExecuted"
,
"snackDisplayExecuted"
]
},
{
"label"
:
"陈列形式是否执行"
,
"prop"
:
"displayExecuted"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
150
"type"
:
"formula"
,
"fill"
:
true
,
"width"
:
150
,
func
:
(
row
)
=>
{
row
.
displayExecuted
=
row
.
actualDisplay
===
row
.
plannedDisplay
?
'是'
:
'否'
return
row
.
displayExecuted
},
formulaStr
:
"实际陈列形式 === 计划陈列形式"
},
{
"label"
:
"计划 - 端架数量(组)"
,
...
...
@@ -243,25 +285,76 @@
"label"
:
"实际 - 端架数量(组)"
,
"prop"
:
"actualEndCapQty"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
160
"type"
:
"select"
,
"fill"
:
true
,
"options"
:
[
{
"label"
:
"0"
,
"value"
:
0
},
{
"label"
:
"0.5"
,
"value"
:
0.5
},
{
"label"
:
"1"
,
"value"
:
1
},
{
"label"
:
"2"
,
"value"
:
2
}
],
render
:
(
_
,
row
,
col
)
=>
{
return
(
<
div
>
<
span
>
{
row
[
col
.
referenceKey
]
||
'-'
}
<
/span
>
<
el
-
select
modelValue
=
{
row
[
col
.
prop
]}
onUpdate
:
modelValue
=
{(
value
)
=>
{
row
[
col
.
prop
]
=
value
;
submitChange
(
row
,
col
);
}}
disabled
=
{
!
row
[
col
.
referenceKey
]}
placeholder
=
""
>
{
col
.
options
.
map
(
item
=>
(
<
el
-
option
key
=
{
item
.
value
}
label
=
{
item
.
label
}
value
=
{
item
.
value
}
/
>
))}
<
/el-select
>
<
/div
>
)
},
"width"
:
160
,
requestKey
:
[
"endCapQtyExecuted"
,
"snackDisplayExecuted"
]
},
{
"label"
:
"端架数量是否执行"
,
"prop"
:
"endCapQtyExecuted"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
140
"type"
:
"formula"
,
"fill"
:
true
,
"width"
:
150
,
func
:
(
row
)
=>
{
row
.
endCapQtyExecuted
=
row
.
actualEndCapQty
>=
row
.
plannedEndCapQty
?
'是'
:
'否'
return
row
.
endCapQtyExecuted
},
formulaStr
:
"执行端架数量 == 计划端架数量"
},
{
"label"
:
"零食陈列是否执行"
,
"prop"
:
"snackDisplayExecuted"
,
"visible"
:
true
,
"type"
:
"string"
,
"fill"
:
false
,
"width"
:
140
"type"
:
"formula"
,
"fill"
:
true
,
"width"
:
150
,
func
:
(
row
)
=>
{
row
.
snackDisplayExecuted
=
row
.
displayExecuted
===
'是'
&&
row
.
endCapQtyExecuted
===
'是'
?
'是'
:
'否'
return
row
.
snackDisplayExecuted
},
formulaStr
:
"陈列形式是否执行 === 是,并且端架数量是否执行 === 是"
},
{
"label"
:
"计划 - 陈列费用"
,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论