提交 9c61ac9c authored 作者: lidongxu's avatar lidongxu

refactor(promotion/*): 修改:店内执行上报_某些列的规则更新

上级 0531bb20
......@@ -52,6 +52,7 @@ onMounted(() => {
<style scoped
lang="scss">
.wm-class{
min-height: 100%;
height: 100%;
}
</style>
......@@ -466,6 +466,7 @@
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedMainShelfType || !row.plannedMainShelfQty) {
row.actualMainShelfExecuted = '-'
return '-';
}
row.actualMainShelfExecuted = ((parseInt(row.actualMainShelfType) >= parseInt(row.plannedMainShelfType)) && (parseInt(row.actualMainShelfQty) >= parseInt(row.plannedMainShelfQty))) ? '是' : '否';
......@@ -546,6 +547,7 @@
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedEndCapQty) {
row.actualEndCapExecuted = '-'
return '-';
}
row.actualEndCapExecuted = ((parseFloat(row.actualEndCapQty) >= parseFloat(row.plannedEndCapQty))) ? '是' : '否';
......@@ -684,6 +686,7 @@
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedFloorStackArea || !row.plannedFloorStackQty) {
row.actualFloorStackExecuted = '-'
return '-';
}
row.actualFloorStackExecuted = ((parseFloat(row.actualFloorStackArea) >= parseFloat(row.plannedFloorStackArea)) && (parseInt(row.actualFloorStackQty) >= parseInt(row.plannedFloorStackQty))) ? '是' : '否';
......@@ -782,6 +785,7 @@
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedMultiDisplay) {
row.actualMultiDisplayExecuted = '-'
return '-';
}
row.actualMultiDisplayExecuted = (row.actualMultiDisplay) ? '是' : '否';
......
......@@ -330,6 +330,10 @@
visible: true,
type: 'formula',
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionSpec) {
return '-';
}
row.specExecutionStatus = row.plannedPromotionSpec === row.actualPromotionSpec ? '是' : '否';
return row.specExecutionStatus;
},
......@@ -409,6 +413,10 @@
visible: true,
type: 'formula',
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionFlavor) {
return '-';
}
// 处理逗号的口味形成数组
let ppromotionFlavor = splitAndFilter(row.plannedPromotionFlavor)
if (!row.actualPromotionFlavor) {
......@@ -599,6 +607,10 @@
visible: true,
type: 'formula',
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionStartDate || !row.plannedPromotionEndDate) {
return '-';
}
row.promotionImplementationStatus = row.actualPromotionStartDate && row.actualPromotionEndDate ? '是' : '否';
return row.promotionImplementationStatus;
},
......@@ -612,6 +624,10 @@
visible: true,
type: 'formula',
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionStartDate || !row.plannedPromotionEndDate) {
return '-';
}
row.timeExecutionStatus = (parseTime(row.actualPromotionStartDate) === parseTime(row.plannedPromotionStartDate)) && parseTime(row.actualPromotionEndDate) === parseTime(row.plannedPromotionEndDate) ? '是' : '否';
return row.timeExecutionStatus;
},
......@@ -658,39 +674,18 @@
label: "促销机制是否执行",
prop: "promotionMechanismExecutionStatus",
visible: true,
type: 'select',
options: [
{
label: '是',
value: '是'
},
{
label: '否',
value: '否'
type: 'formula',
func: (row) => {
// 如果参考值是空则返回 '-'
if (!row.plannedPromotionMechanism) {
return '-';
}
],
row.promotionMechanismExecutionStatus = row.actualPromotionMechanism ? '是' : '否';
return row.promotionMechanismExecutionStatus;
},
formulaStr: '公式:实际促销机制,是否有值',
fill: true,
width: 135,
render: (_, row, col) => {
return (
<div>
<div style="width: 100%;">
<el-select modelValue={row[col.prop]}
onUpdate:modelValue={(value) => {
row[col.prop] = value;
submitChange(row, col);
}}
placeholder=""
clearable
>
{col.options.map((item) => (
<el-option key={item.value} label={item.label} value={item.value} />
))}
</el-select>
</div>
</div>
)
}
width: 145,
},
{
label: "预估袋数",
......@@ -876,7 +871,7 @@
row.promotionExecutionStatus = row.promotionPriceExecutionStatus == '是' && row.promotionMechanismExecutionStatus == '是' && row.specExecutionStatus == '是' && row.promotionImplementationStatus == '是' ? '是' : '否';
return row.promotionExecutionStatus;
},
formulaStr: '公式:(促销价是否执行 = 是,并且促销机制是否执行 = 是,并且促销规格是否执行 = 是,并且档期是否开展 = 是)',
formulaStr: '公式:促销价执行,并且促销机制执行,并且促销规格执行,并且档期开展(某项无计划时,忽略该项)',
fill: true,
width: 125
}
......
......@@ -445,6 +445,10 @@
"fill": true,
"width": 160,
func: (row) => {
// 如果计划端架数量为空则返回 '-'
if (!row.plannedEndCapQty) {
return '-';
}
row.actualEndCapExecuted = row.actualEndCapQty >= row.plannedEndCapQty ? '是' : '否'
return row.actualEndCapExecuted
},
......@@ -594,6 +598,10 @@
"fill": true,
"width": 150,
func: (row) => {
// 如果计划端架数量为空则返回 '-'
if (!row.plannedFloorStackArea || !row.plannedFloorStackQty) {
return '-';
}
row.actualFloorStackExecuted = row.actualFloorStackArea >= row.plannedFloorStackArea && row.actualFloorStackQty >= row.plannedFloorStackQty ? '是' : '否'
return row.actualFloorStackExecuted
},
......@@ -651,10 +659,13 @@
"fill": true,
"width": 190,
func: (row) => {
row.actualOtherDisplayExecuted = !row.actualOtherDisplay ? '否' : '是'
if (!row.plannedOtherDisplay) {
return '-';
}
row.actualOtherDisplayExecuted = row.actualOtherDisplay ? '是' : '否'
return row.actualOtherDisplayExecuted
},
formulaStr: "执行其他陈列数量 + 形式,是否等于计划其他陈列数量 + 形式"
formulaStr: "公式:实际其他陈列-数量+形式,有值"
},
{
"label": "合计费用 - 费用",
......@@ -676,7 +687,7 @@
row.promotionDisplayExecuted = row.actualEndShelfExecuted === '是' && row.actualFloorStackExecuted === '是' && row.actualOtherDisplayExecuted === '是' ? '是' : '否'
return row.promotionDisplayExecuted
},
formulaStr: "实际端架-是否执行 === '是',并且 实际地堆是否执行 === '是',并且 实际其他陈列-是否执行 === '是'"
formulaStr: "公式:实际端架执行,并且实际地堆执行,并且实际其他陈列执行(某项无计划时,忽略该项)"
},
{
"label": "付费陈列 - 是否",
......
......@@ -261,50 +261,68 @@
"label": "实际 - 陈列形式",
"prop": "actualDisplay",
"visible": true,
"type": "select",
"type": "input",
referenceKey: "plannedDisplay",
"fill": true,
"width": 160,
"options": [
{
"label": "端架",
"value": "端架"
},
{
"label": "收银台",
"value": "收银台"
},
{
"label": "端架和收银台",
"value": "端架和收银台"
}
],
render: (_, row, col) => {
return (
<div>
<el-tooltip placement="top" content={row[col.referenceKey] || '-'} disabled={!isContentOverflow(col.referenceKey, row[col.referenceKey], col)}>
<span style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block; max-width: 100%;">
{row[col.referenceKey] || '-'}
</span>
</el-tooltip>
<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>
<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>
)
},
"fill": true,
"width": 160,
// "options": [
// {
// "label": "端架",
// "value": "端架"
// },
// {
// "label": "收银台",
// "value": "收银台"
// },
// {
// "label": "端架和收银台",
// "value": "端架和收银台"
// }
// ],
// render: (_, row, col) => {
// return (
// <div>
// <el-tooltip placement="top" content={row[col.referenceKey] || '-'} disabled={!isContentOverflow(col.referenceKey, row[col.referenceKey], col)}>
// <span style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block; max-width: 100%;">
// {row[col.referenceKey] || '-'}
// </span>
// </el-tooltip>
// <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"]
},
{
......@@ -315,7 +333,10 @@
"fill": true,
"width": 150,
func: (row) => {
row.displayExecuted = row.actualDisplay === row.plannedDisplay ? '是' : '否'
if (!row.plannedDisplay) {
return '-';
}
row.displayExecuted = row.actualDisplay ? '是' : '否'
return row.displayExecuted
},
formulaStr: "实际陈列形式 === 计划陈列形式"
......@@ -402,7 +423,7 @@
row.snackDisplayExecuted = row.displayExecuted === '是' && row.endCapQtyExecuted === '是' ? '是' : '否'
return row.snackDisplayExecuted
},
formulaStr: "陈列形式是否执行 === 是,并且端架数量是否执行 === 是"
formulaStr: "公式:陈列形式执行,并且端架数量执行(某项无计划时,忽略该项)"
},
{
"label": "计划 - 陈列费用",
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论