提交 3a34c4f8 authored 作者: lidongxu's avatar lidongxu

refactor(promotion/display_schedule): 修改:店内执行上报,最后一列是否执行的总结果,过滤掉无值的选项

上级 9c61ac9c
......@@ -818,7 +818,16 @@
type: 'formula',
func: (row) => {
// 实际主货架-执行 && 实际端架-执行 && 实际地堆-执行 && 实际多点陈列-执行
row.regularDisplayExecuted = (row.actualMainShelfExecuted === '是' && row.actualEndCapExecuted === '是' && row.actualFloorStackExecuted === '是' && row.actualMultiDisplayExecuted === '是') ? '是' : '否';
// 过滤掉值为"-"的项,只对有实际值的项进行判断
const executionStatuses = [
row.actualMainShelfExecuted,
row.actualEndCapExecuted,
row.actualFloorStackExecuted,
row.actualMultiDisplayExecuted
].filter(status => status !== '-');
// 如果所有过滤后的状态都是'是',则返回'是',否则返回'否'
row.regularDisplayExecuted = executionStatuses.every(status => status === '是') ? '是' : '否';
return row.regularDisplayExecuted;
},
formulaStr: '公式:实际主货架执行,并且实际端架执行,并且实际地堆执行,并且实际多点陈列执行(某项无计划时,忽略该项)',
......
......@@ -332,6 +332,7 @@
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionSpec) {
row.specExecutionStatus = '-';
return '-';
}
row.specExecutionStatus = row.plannedPromotionSpec === row.actualPromotionSpec ? '是' : '否';
......@@ -415,6 +416,7 @@
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionFlavor) {
row.flavorExecutionStatus = '-';
return '-';
}
// 处理逗号的口味形成数组
......@@ -609,6 +611,7 @@
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionStartDate || !row.plannedPromotionEndDate) {
row.promotionImplementationStatus = '-';
return '-';
}
row.promotionImplementationStatus = row.actualPromotionStartDate && row.actualPromotionEndDate ? '是' : '否';
......@@ -626,6 +629,7 @@
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionStartDate || !row.plannedPromotionEndDate) {
row.timeExecutionStatus = '-';
return '-';
}
row.timeExecutionStatus = (parseTime(row.actualPromotionStartDate) === parseTime(row.plannedPromotionStartDate)) && parseTime(row.actualPromotionEndDate) === parseTime(row.plannedPromotionEndDate) ? '是' : '否';
......@@ -678,6 +682,7 @@
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionMechanism) {
row.promotionMechanismExecutionStatus = '-';
return '-';
}
row.promotionMechanismExecutionStatus = row.actualPromotionMechanism ? '是' : '否';
......@@ -867,8 +872,16 @@
visible: true,
type: 'formula',
func: (row) => {
// 促销价是否执行,促销机制是否执行,促销规格是否执行,档期是否开展
row.promotionExecutionStatus = row.promotionPriceExecutionStatus == '是' && row.promotionMechanismExecutionStatus == '是' && row.specExecutionStatus == '是' && row.promotionImplementationStatus == '是' ? '是' : '否';
// 过滤掉值为"-"的项,只对有实际值的项进行判断
const executionStatuses = [
row.promotionPriceExecutionStatus,
row.promotionMechanismExecutionStatus,
row.specExecutionStatus,
row.promotionImplementationStatus
].filter(status => status !== '-');
// 如果所有过滤后的状态都是'是',则返回'是',否则返回'否'
row.promotionExecutionStatus = executionStatuses.every(status => status === '是') ? '是' : '否';
return row.promotionExecutionStatus;
},
formulaStr: '公式:促销价执行,并且促销机制执行,并且促销规格执行,并且档期开展(某项无计划时,忽略该项)',
......@@ -946,6 +959,7 @@
visible: true,
type: 'formula',
func: (row) => {
if (!row.plannedPosterFormat) return row.posterExecutionStatus = '-'
if (!row.actualPosterFormat) return row.posterExecutionStatus = '否'
row.posterExecutionStatus = row.plannedPosterFormat == row.actualPosterFormat ? '是' : '否';
return row.posterExecutionStatus;
......
......@@ -447,6 +447,7 @@
func: (row) => {
// 如果计划端架数量为空则返回 '-'
if (!row.plannedEndCapQty) {
row.actualEndCapExecuted = '-'
return '-';
}
row.actualEndCapExecuted = row.actualEndCapQty >= row.plannedEndCapQty ? '是' : '否'
......@@ -600,6 +601,7 @@
func: (row) => {
// 如果计划端架数量为空则返回 '-'
if (!row.plannedFloorStackArea || !row.plannedFloorStackQty) {
row.actualFloorStackExecuted = '-'
return '-';
}
row.actualFloorStackExecuted = row.actualFloorStackArea >= row.plannedFloorStackArea && row.actualFloorStackQty >= row.plannedFloorStackQty ? '是' : '否'
......@@ -660,6 +662,7 @@
"width": 190,
func: (row) => {
if (!row.plannedOtherDisplay) {
row.actualOtherDisplayExecuted = '-'
return '-';
}
row.actualOtherDisplayExecuted = row.actualOtherDisplay ? '是' : '否'
......@@ -684,8 +687,15 @@
"width": 160,
func: (row) => {
// 实际端架-是否执行 && 实际地堆是否执行 && 实际其他陈列-是否执行
row.promotionDisplayExecuted = row.actualEndShelfExecuted === '是' && row.actualFloorStackExecuted === '是' && row.actualOtherDisplayExecuted === '是' ? '是' : '否'
return row.promotionDisplayExecuted
const executionStatuses = [
row.actualEndCapExecuted,
row.actualFloorStackExecuted,
row.actualOtherDisplayExecuted
].filter(status => status !== '-');
// 如果所有过滤后的状态都是'是',则返回'是',否则返回'否'
row.promotionDisplayExecuted = executionStatuses.every(status => status === '是') ? '是' : '否';
return row.promotionDisplayExecuted;
},
formulaStr: "公式:实际端架执行,并且实际地堆执行,并且实际其他陈列执行(某项无计划时,忽略该项)"
},
......
......@@ -407,6 +407,10 @@
"fill": true,
"width": 150,
func: (row) => {
if (!row.plannedEndCapQty) {
row.endCapQtyExecuted = '-'
return '-'
}
row.endCapQtyExecuted = row.actualEndCapQty >= row.plannedEndCapQty ? '是' : '否'
return row.endCapQtyExecuted
},
......@@ -420,8 +424,14 @@
"fill": true,
"width": 150,
func: (row) => {
row.snackDisplayExecuted = row.displayExecuted === '是' && row.endCapQtyExecuted === '是' ? '是' : '否'
return row.snackDisplayExecuted
const executionStatuses = [
row.displayExecuted,
row.endCapQtyExecuted
].filter(status => status !== '-');
// 如果所有过滤后的状态都是'是',则返回'是',否则返回'否'
row.snackDisplayExecuted = executionStatuses.every(status => status === '是') ? '是' : '否';
return row.snackDisplayExecuted;
},
formulaStr: "公式:陈列形式执行,并且端架数量执行(某项无计划时,忽略该项)"
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论