Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
0531bb20
提交
0531bb20
authored
11月 12, 2025
作者:
lidongxu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(mobile/licenses+promotion): 新增:质检报告勤策App页面_修复店内执行上报的常规陈列部分执行字段计算公式
上级
be7df4ef
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
121 行增加
和
51 行删除
+121
-51
index.vue
src/views/mobile/pages/licenses/report/index.vue
+80
-4
display.vue
src/views/promotion/display_schedule/tabs/display.vue
+41
-47
没有找到文件。
src/views/mobile/pages/licenses/report/index.vue
浏览文件 @
0531bb20
<
template
>
<div>
123
<div
class=
"mobile-container"
>
<van-nav-bar
right-text=
"搜索"
left-arrow
@
click-left=
"clickBack"
@
click-right=
"showSearch = true"
placeholder
fixed
/>
<!-- 计划列表 -->
<van-pull-refresh
v-model=
"refreshLoading"
:pull-distance=
"100"
success-text=
"刷新成功"
@
refresh=
"onRefresh"
>
<van-list
v-model:loading=
"loading"
:finished=
"finished"
:immediate-check=
"false"
finished-text=
"没有更多了"
@
load=
"onLoad"
>
<van-cell-group
inset
>
<van-swipe-cell
v-for=
"item in planList"
:key=
"item.id"
>
<van-cell
:title=
"item.prdName + '\n料号: ' + item.prdCode"
>
<template
#
label
>
<p>
批号:
{{
item
.
manufactureBatchNo
}}
</p>
<p>
厂家:
{{
item
.
manufactureDate
}}
</p>
</
template
>
<
template
#
value
>
</
template
>
</van-cell>
</van-swipe-cell>
</van-cell-group>
</van-list>
</van-pull-refresh>
</div>
</template>
<
script
setup
>
import
{
getQualityInsPageList
}
from
'@/api'
const
router
=
useRouter
()
/*************** 导航栏 ***************/
const
showSearch
=
ref
(
false
)
const
clickBack
=
()
=>
{
router
.
back
()
}
/*************** 刷新+加载 ***************/
const
refreshLoading
=
ref
(
false
)
const
onRefresh
=
async
()
=>
{
refreshLoading
.
value
=
true
await
getPlanListFn
()
refreshLoading
.
value
=
false
}
// 加载更多
const
loading
=
ref
(
false
)
const
finished
=
ref
(
false
)
const
onLoad
=
async
()
=>
{
if
(
loading
.
value
||
finished
.
value
)
return
loading
.
value
=
true
await
getPlanListFn
()
loading
.
value
=
false
}
/*************** 计划列表 ***************/
const
query
=
reactive
({
pageNum
:
1
,
pageSize
:
10
,
})
const
planList
=
ref
([])
const
getPlanListFn
=
async
()
=>
{
const
res
=
await
getQualityInsPageList
(
query
)
if
(
res
.
code
===
200
)
{
planList
.
value
=
res
.
data
.
rows
||
[]
finished
.
value
=
res
.
data
.
rows
.
length
<
res
.
data
.
pageSize
}
}
getPlanListFn
()
</
script
>
<
style
scoped
lang=
"scss"
></
style
>
\ No newline at end of file
lang=
"scss"
>
::v-deep
(
.van-cell__label
)
{
margin
:
0
;
}
</
style
>
\ No newline at end of file
src/views/promotion/display_schedule/tabs/display.vue
浏览文件 @
0531bb20
...
...
@@ -464,6 +464,10 @@
visible
:
true
,
type
:
'formula'
,
func
:
(
row
)
=>
{
// 如果参考值是空则返回 '-'
if
(
!
row
.
plannedMainShelfType
||
!
row
.
plannedMainShelfQty
)
{
return
'-'
;
}
row
.
actualMainShelfExecuted
=
((
parseInt
(
row
.
actualMainShelfType
)
>=
parseInt
(
row
.
plannedMainShelfType
))
&&
(
parseInt
(
row
.
actualMainShelfQty
)
>=
parseInt
(
row
.
plannedMainShelfQty
)))
?
'是'
:
'否'
;
return
row
.
actualMainShelfExecuted
;
},
...
...
@@ -540,6 +544,10 @@
visible
:
true
,
type
:
'formula'
,
func
:
(
row
)
=>
{
// 如果参考值是空则返回 '-'
if
(
!
row
.
plannedEndCapQty
)
{
return
'-'
;
}
row
.
actualEndCapExecuted
=
((
parseFloat
(
row
.
actualEndCapQty
)
>=
parseFloat
(
row
.
plannedEndCapQty
)))
?
'是'
:
'否'
;
return
row
.
actualEndCapExecuted
;
},
...
...
@@ -568,7 +576,7 @@
prop
:
"plannedThemedFloorStack"
,
visible
:
true
,
type
:
'string'
,
fill
:
tru
e
,
fill
:
fals
e
,
width
:
140
},
{
...
...
@@ -668,10 +676,27 @@
// 请求时需要额外携带影响的列字段值
requestKey
:
[
"actualFloorStackExecuted"
,
"regularDisplayExecuted"
]
},
{
label
:
"实际地堆是否执行"
,
prop
:
"actualFloorStackExecuted"
,
visible
:
true
,
type
:
'formula'
,
func
:
(
row
)
=>
{
// 如果参考值是空则返回 '-'
if
(
!
row
.
plannedFloorStackArea
||
!
row
.
plannedFloorStackQty
)
{
return
'-'
;
}
row
.
actualFloorStackExecuted
=
((
parseFloat
(
row
.
actualFloorStackArea
)
>=
parseFloat
(
row
.
plannedFloorStackArea
))
&&
(
parseInt
(
row
.
actualFloorStackQty
)
>=
parseInt
(
row
.
plannedFloorStackQty
)))
?
'是'
:
'否'
;
return
row
.
actualFloorStackExecuted
;
},
formulaStr
:
'公式:(实际地堆平米数 >= 计划地堆平米数)并且(实际地堆数量 >= 计划地堆数量)'
,
fill
:
true
,
width
:
150
},
{
label
:
"实际主题地堆-是否"
,
prop
:
"actualThemedFloorStack"
,
referenceKey
:
"
actualFloorStackQty
"
,
referenceKey
:
"
plannedThemedFloorStack
"
,
visible
:
true
,
type
:
'select'
,
options
:
[
...
...
@@ -683,6 +708,7 @@
render
:
(
_
,
row
,
col
)
=>
{
return
(
<
div
>
<
span
>
{
row
[
col
.
referenceKey
]
||
'-'
}
<
/span
>
<
el
-
select
modelValue
=
{
row
[
col
.
prop
]}
onUpdate
:
modelValue
=
{(
value
)
=>
{
row
[
col
.
prop
]
=
value
;
...
...
@@ -702,19 +728,6 @@
)
}
},
{
label
:
"实际地堆是否执行"
,
prop
:
"actualFloorStackExecuted"
,
visible
:
true
,
type
:
'formula'
,
func
:
(
row
)
=>
{
row
.
actualFloorStackExecuted
=
((
parseFloat
(
row
.
actualFloorStackArea
)
>=
parseFloat
(
row
.
plannedFloorStackArea
))
&&
(
parseInt
(
row
.
actualFloorStackQty
)
>=
parseInt
(
row
.
plannedFloorStackQty
)))
?
'是'
:
'否'
;
return
row
.
actualFloorStackExecuted
;
},
formulaStr
:
'公式:(实际地堆平米数 >= 计划地堆平米数)并且(实际地堆数量 >= 计划地堆数量)'
,
fill
:
true
,
width
:
150
},
{
label
:
"计划多点陈列-数量+形式"
,
prop
:
"plannedMultiDisplay"
,
...
...
@@ -738,7 +751,7 @@
type
:
'input'
,
func
:
(
row
)
=>
{
// 没有输入内容时,则是否执行设置为否
row
.
actualMultiDisplayExecuted
=
!
row
.
actualMultiDisplay
?
'否'
:
'是'
//
row.actualMultiDisplayExecuted = !row.actualMultiDisplay ? '否' : '是'
},
referenceKey
:
"plannedMultiDisplay"
,
fill
:
true
,
...
...
@@ -765,37 +778,18 @@
label
:
"实际多点陈列-是否执行"
,
prop
:
"actualMultiDisplayExecuted"
,
visible
:
true
,
type
:
'select'
,
options
:
[
{
label
:
'是'
,
value
:
'是'
},
{
label
:
'否'
,
value
:
'否'
}
],
fill
:
true
,
width
:
170
,
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
>
)
type
:
'formula'
,
func
:
(
row
)
=>
{
// 如果参考值是空则返回 '-'
if
(
!
row
.
plannedMultiDisplay
)
{
return
'-'
;
}
row
.
actualMultiDisplayExecuted
=
(
row
.
actualMultiDisplay
)
?
'是'
:
'否'
;
return
row
.
actualMultiDisplayExecuted
;
},
// 请求时需要额外携带影响的列字段值
requestKey
:
[
"actualMultiDisplayExecuted"
]
formulaStr
:
'公式:实际多点陈列-数量+形式,有值'
,
fill
:
true
,
width
:
180
,
},
{
label
:
"合计费用-费用"
,
...
...
@@ -823,7 +817,7 @@
row
.
regularDisplayExecuted
=
(
row
.
actualMainShelfExecuted
===
'是'
&&
row
.
actualEndCapExecuted
===
'是'
&&
row
.
actualFloorStackExecuted
===
'是'
&&
row
.
actualMultiDisplayExecuted
===
'是'
)
?
'是'
:
'否'
;
return
row
.
regularDisplayExecuted
;
},
formulaStr
:
'公式:
(实际主货架执行,并且实际端架执行,并且实际地堆执行,并且实际多点陈列执行
)'
,
formulaStr
:
'公式:
实际主货架执行,并且实际端架执行,并且实际地堆执行,并且实际多点陈列执行(某项无计划时,忽略该项
)'
,
fill
:
true
,
width
:
150
},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论