提交 d910a7c2 authored 作者: lidongxu's avatar lidongxu

refactor(views/promotion/table): 样式:修改店内执行上报复用表格的样式

上级 11d86ae8
<template> <template>
<!-- 操作类型 -->
<el-row> <el-row>
<el-form-item> <el-form-item>
<el-radio-group v-model="operation" <el-radio-group v-model="operation"
...@@ -6,7 +7,8 @@ ...@@ -6,7 +7,8 @@
<el-radio-button label="展示模式" <el-radio-button label="展示模式"
value="展示模式" /> value="展示模式" />
<el-radio-button label="填报模式" <el-radio-button label="填报模式"
value="填报模式" v-if="useFill"/> value="填报模式"
v-if="showFill" />
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<right-toolbar v-model:showSearch="showSearch" <right-toolbar v-model:showSearch="showSearch"
...@@ -16,11 +18,11 @@ ...@@ -16,11 +18,11 @@
:defaultCheckedKeys="visibleProps"> :defaultCheckedKeys="visibleProps">
</right-toolbar> </right-toolbar>
</el-row> </el-row>
<!-- 筛选列组的按钮 --> <!-- 数据表格 -->
<el-table :data="tableData" <el-table :data="tableData"
border border
ref="tableRef" ref="tableRef"
class="auto-fit-header-table " class="auto-fit-header-table"
:class="{ 'cell-no-padding': operation === '填报模式' }" :class="{ 'cell-no-padding': operation === '填报模式' }"
v-loading="isLoading"> v-loading="isLoading">
<template v-for="col in tableColumns"> <template v-for="col in tableColumns">
...@@ -47,21 +49,19 @@ ...@@ -47,21 +49,19 @@
<!-- 填报模式 --> <!-- 填报模式 -->
<div v-if="operation === '填报模式'" <div v-if="operation === '填报模式'"
style="overflow: visible !important;"> style="overflow: visible !important;">
<!-- 带选择框/输入框的操作单元格 --> <!-- 自定义渲染内容单元格 -->
<div v-if="col.render" <div v-if="col.render"
class="cell-style"> class="cell-style">
<component :is="col.render(h, row, col)" /> <component :is="col.render(h, row, col)" />
</div> </div>
<!-- 正常显示/公式计算 --> <!-- 公式计算 -->
<div v-else-if="col.type === 'formula'"> <div v-else-if="col.type === 'formula'">
{{ col.func(row) }} {{ col.func(row) }}
</div> </div>
<div v-else <!-- 其他类型内容 -->
class="overflow_wrap"> <div v-else>
<!-- 超出部分显示省略号 --> <!-- 正常显示 -->
<span> <span>{{ row[col.prop] || '-' }}</span>
{{ row[col.prop] || '-' }}
</span>
</div> </div>
</div> </div>
<!-- 展示模式 --> <!-- 展示模式 -->
...@@ -79,21 +79,16 @@ ...@@ -79,21 +79,16 @@
<script setup> <script setup>
import { h } from 'vue' import { h } from 'vue'
/*************** 操作类型 ***************/
const operation = ref('展示模式');
// const operation = ref('填报模式');
const tableRef = ref(null)
const props = defineProps({ const props = defineProps({
tableColumns: { // 表格列 tableColumns: { // 表格列
type: Array, type: Array,
default: () => [] default: () => []
}, },
chooseColumns: { // 右上角工具选择列 chooseColumns: { // 显隐列数据结构
type: Array, type: Array,
default: () => [] default: () => []
}, },
visibleProps: { // 右上角工具为树结构,默认勾选的列 visibleProps: { // 显隐列数据,默认勾选的列
type: Array, type: Array,
default: () => [] default: () => []
}, },
...@@ -101,38 +96,36 @@ const props = defineProps({ ...@@ -101,38 +96,36 @@ const props = defineProps({
type: Array, type: Array,
default: () => [] default: () => []
}, },
isLoading: { isLoading: { // 表格加载状态
type: Boolean, type: Boolean,
default: false default: false
}, },
total: { total: { // 总条数
type: Number, type: Number,
default: 0 default: 0
}, },
params: { params: { // 分页参数
type: Object, type: Object,
default: () => ({ default: () => ({
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
}) })
}, },
// 启用填报模式 showFill: { // 是否显示填报模式
useFill: {
type: Boolean, type: Boolean,
default: false default: false
}, },
// 格式化表格某列内容 formatter: { // 格式化函数
formatter: {
type: Function, type: Function,
default: (row, col, cellValue) => cellValue default: (row, col, cellValue) => cellValue
} }
}) })
const emit = defineEmits(['updateColumns', 'getTableList', 'updateShowSearch']) const emit = defineEmits(['updateColumns', 'getTableList', 'updateShowSearch'])
// 右上角工具 /*************** 工具栏 ***************/
const showSearch = ref(true)
// 切换平铺/填报模式 // 切换平铺/填报模式
const operation = ref('展示模式');
const tableRef = ref(null)
const checkTableColumns = async () => { const checkTableColumns = async () => {
// 通知外面传入 tableColumns / chooseColumns 数据源 // 通知外面传入 tableColumns / chooseColumns 数据源
await emit('updateColumns', operation.value) await emit('updateColumns', operation.value)
...@@ -144,177 +137,98 @@ const checkTableColumns = async () => { ...@@ -144,177 +137,98 @@ const checkTableColumns = async () => {
} }
}) })
} }
onMounted(() => { onMounted(() => {
checkTableColumns() checkTableColumns()
}) })
const getTableList = () => { // 控制搜索框显隐
emit('getTableList') const showSearch = ref(true)
}
watch(showSearch, (newVal) => { watch(showSearch, (newVal) => {
emit('updateShowSearch', newVal) emit('updateShowSearch', newVal)
}) })
// 刷新数据
const getTableList = () => {
emit('getTableList')
}
</script> </script>
<style scoped <style scoped
lang="scss"> lang="scss">
.container {
.el-tabs { /* 表格样式 */
height: 100%; .auto-fit-header-table {
display: flex; height: 100%;
flex-direction: column-reverse;
.el-tabs__content { /* 列样式 */
display: flex; .column-style {
flex-direction: column;
height: 100%;
.el-tab-pane { /* 列头样式 */
height: 100%; .formula-column {
display: flex; display: flex;
flex-direction: column; justify-content: center;
align-items: center;
.pagination-container { .el-icon {
margin: 10px; margin-left: 2px;
}
} }
}
.formula-column { /* 单元格样式 */
display: flex; /* 自定义渲染内容 */
justify-content: center; .cell-style {
align-items: center; margin: 0 -12px;
.el-icon { >div {
margin-left: 2px; display: flex;
flex-direction: column;
align-items: flex-start;
>span {
text-align: left;
text-indent: 5px;
display: inline-block;
width: 100%;
background-color: #e1e2e6;
border-bottom: 1px solid #ebeef5;
} }
} }
}
}
.el-form-item {
align-items: center;
}
/* 表格区域 */ /* 表格内下拉框 */
.auto-fit-header-table { .el-select {
width: 100% !important;
padding: 10px;
}
/* 优化超长文本的显示效果 */ .el-input {
.cell { padding: 10px;
}
/* padding: 0 .2133rem; */ .date-picker {
>div {
width: 100%; width: 100%;
overflow: hidden; padding: 10px;
text-overflow: ellipsis;
white-space: nowrap;
}
}
&.cell-no-padding { .el-input {
::v-deep(.el-table__row) { width: 100%;
.el-table__cell {
padding: 0; padding: 0;
} }
} }
} }
}
::v-deep(.column-style) { /* 填报模式-单元格 */
&.cell-no-padding {
.cell {
/* overflow: visible; */
>div {
/* overflow: visible !important; */
}
.cell-style {
margin: 0 -12px;
>div {
display: flex;
flex-direction: column;
align-items: flex-start;
>span {
text-align: left;
text-indent: 5px;
display: inline-block;
width: 100%;
background-color: #e1e2e6;
border-bottom: 1px solid #ebeef5;
}
}
/* 表格内下拉框 */
.el-select {
width: 100% !important;
padding: 10px;
}
.el-input {
padding: 10px;
}
.date-picker {
width: 100%;
padding: 10px;
.el-input {
width: 100%;
padding: 0;
}
}
} /* 无上下内边距 */
::v-deep(.el-table__row) {
.el-table__cell {
padding: 0;
} }
} }
}
}
/* 特殊动态渲染单元格样式 */
.render-cell {
p {
margin: 0;
}
}
/* 操作提示列 */
.operation_tip_cell {
display: flex;
flex-direction: column;
align-items: flex-start;
p {
width: 100%;
margin: 0;
}
p:first-child {
background-color: #e1e2e6;
border-bottom: 1px solid #ebeef5;
}
p:last-child {
padding: 15px 0;
} }
} }
/* 超出部分显示省略号 */ /* 分页器 */
.overflow_wrap { .pagination-container {
width: 100%; margin: 10px;
/* 固定宽度 */
white-space: nowrap;
/* 不换行 */
overflow: hidden;
/* 隐藏超出部分 */
text-overflow: ellipsis;
/* 显示省略号 */
display: inline-block;
} }
</style> </style>
\ No newline at end of file
...@@ -2,14 +2,14 @@ ...@@ -2,14 +2,14 @@
<!-- 常规陈列 --> <!-- 常规陈列 -->
<SearchList :showSearch="showSearch" <SearchList :showSearch="showSearch"
@change="searchChange" /> @change="searchChange" />
<CommonPlan :tableData="tableData" <CustomTable :tableData="tableData"
:isLoading="isLoading" :isLoading="isLoading"
:total="total" :total="total"
:tableColumns="tableColumns" :tableColumns="tableColumns"
:chooseColumns="chooseColumns" :chooseColumns="chooseColumns"
:visibleProps="visibleProps" :visibleProps="visibleProps"
:params="params" :params="params"
:useFill="useFill" :showFill="showFill"
@updateColumns="updateColumns" @updateColumns="updateColumns"
@getTableList="getTableList" @getTableList="getTableList"
@updateShowSearch="updateShowSearch" /> @updateShowSearch="updateShowSearch" />
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<script setup <script setup
lang="jsx"> lang="jsx">
import CommonPlan from '@/views/promotion/components/CommonPlan' import CustomTable from '@/views/promotion/components/Table'
import SearchList from '@/views/promotion/components/SearchList' import SearchList from '@/views/promotion/components/SearchList'
import { getDisplayList, submitDisplayPlan } from '@/api' import { getDisplayList, submitDisplayPlan } from '@/api'
import { parseTime } from '@/utils' import { parseTime } from '@/utils'
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
import userStore from '@/store/modules/user' import userStore from '@/store/modules/user'
// 是否启用填报模式 // 是否启用填报模式
const useFill = userStore().hasQcMarketEmpInfo const showFill = userStore().hasQcMarketEmpInfo
/*************** 操作类型 ***************/ /*************** 操作类型 ***************/
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
}, },
{ {
label: "门店名称", label: "门店名称",
prop: "storeNameCodeDealerName", //d 新增动态列(只在填报列显示) prop: "storeNameCodeDealerName", //新增动态列(只在填报列显示)
visible: true, visible: true,
type: 'string', type: 'string',
fill: true, fill: true,
...@@ -163,22 +163,11 @@ ...@@ -163,22 +163,11 @@
width: 225, width: 225,
render: (h, row) => { render: (h, row) => {
return h('div', { return h('div', {
class: 'render-cell', class: 'store-name-render-cell'
style: {
alignItems: 'center',
whiteSpace: 'pre-line'
}
}, [ }, [
h('p', row.storeName), h('p', row.storeName),
h('p', row.storeCode), h('p', row.storeCode),
h('p', { h('p', row.dealerName)
style: {
whiteSpace: 'nowrap',
overflow: 'hidden',
textOverflow: 'ellipsis',
maxWidth: '100%'
}
}, row.dealerName)
]) ])
} }
}, },
...@@ -1133,4 +1122,40 @@ ...@@ -1133,4 +1122,40 @@
} }
} }
</style>
<style lang="scss">
// 动态列内容的 render 内样式
// 操作提示列
.operation_tip_cell {
display: flex;
flex-direction: column;
align-items: flex-start;
p {
width: 100%;
margin: 0;
}
p:first-child {
background-color: #e1e2e6;
border-bottom: 1px solid #ebeef5;
}
p:last-child {
padding: 15px 0;
}
}
// 只在填报模式出现的门店名称+门店编码+经销山名称(合并到一起)
.store-name-render-cell {
display: flex;
flex-direction: column;
align-items: flex-start;
p {
width: 100%;
margin: 0;
}
}
</style> </style>
\ No newline at end of file
...@@ -4,32 +4,30 @@ ...@@ -4,32 +4,30 @@
<SearchList :showSearch="showSearch" <SearchList :showSearch="showSearch"
@change="searchChange" @change="searchChange"
:showStoreSearch="false" /> :showStoreSearch="false" />
<CommonPlan :tableData="tableData" <CustomTable :tableData="tableData"
:isLoading="isLoading" :isLoading="isLoading"
:total="total" :total="total"
:tableColumns="tableColumns" :tableColumns="tableColumns"
:chooseColumns="chooseColumns" :chooseColumns="chooseColumns"
:visibleProps="visibleProps" :visibleProps="visibleProps"
:params="params" :params="params"
:useFill="useFill" :showFill="showFill"
:formatter="formatterFn" :formatter="formatterFn"
@updateColumns="updateColumns" @updateColumns="updateColumns"
@getTableList="getTableList" @getTableList="getTableList"
@updateShowSearch="updateShowSearch" @updateShowSearch="updateShowSearch" />
/>
</template> </template>
<script setup <script setup
lang="jsx"> lang="jsx">
import CommonPlan from '@/views/promotion/components/CommonPlan' import CustomTable from '@/views/promotion/components/Table'
import SearchList from '@/views/promotion/components/SearchList' import SearchList from '@/views/promotion/components/SearchList'
import { getDisplayScheduleList, submitDisplaySchedulePlan } from '@/api' import { getDisplayScheduleList, submitDisplaySchedulePlan } from '@/api'
import { parseTime } from '@/utils' import { parseTime } from '@/utils'
import { onMounted } from 'vue';
import userStore from '@/store/modules/user' import userStore from '@/store/modules/user'
// 是否启用填报模式 // 是否启用填报模式
const useFill = userStore().hasQcMarketEmpInfo const showFill = userStore().hasQcMarketEmpInfo
/*************** 操作类型 ***************/ /*************** 操作类型 ***************/
function splitAndFilter(str) { function splitAndFilter(str) {
...@@ -227,227 +225,227 @@ ...@@ -227,227 +225,227 @@
prop: 'baseColumns', prop: 'baseColumns',
visible: true visible: true
}, },
{ // {
label: "档期基础信息", // label: "档期基础信息",
children: [ // children: [
{ // {
label: "档期执行月份", // label: "档期执行月份",
prop: "promotionExecutionMonth", // prop: "promotionExecutionMonth",
visible: true, // visible: true,
type: "string", // type: "string",
fill: false, // fill: false,
width: 110 // width: 110
}, // },
{ // {
label: "档期计划-促销规格", // label: "档期计划-促销规格",
prop: "plannedPromotionSpec", // prop: "plannedPromotionSpec",
showOverflowTooltip: true, // showOverflowTooltip: true,
visible: true, // visible: true,
type: "string", // type: "string",
fill: false, // fill: false,
width: 140 // width: 140
}, // },
{ // {
label: "档期计划-促销口味", // label: "档期计划-促销口味",
prop: "plannedPromotionFlavor", // prop: "plannedPromotionFlavor",
showOverflowTooltip: true, // showOverflowTooltip: true,
visible: true, // visible: true,
type: "string", // type: "string",
fill: false, // fill: false,
width: 140 // width: 140
}, // },
{ // {
label: "档期执行-促销规格", // label: "档期执行-促销规格",
prop: "actualPromotionSpec", // prop: "actualPromotionSpec",
visible: true, // visible: true,
type: 'select', // type: 'select',
options: [ // options: [
{ // {
label: '虎皮105g', // label: '虎皮105g',
value: '虎皮105g' // value: '虎皮105g'
}, // },
{ // {
label: '虎皮210g', // label: '虎皮210g',
value: '虎皮210g' // value: '虎皮210g'
}, // },
{ // {
label: '去骨72g', // label: '去骨72g',
value: '去骨72g' // value: '去骨72g'
}, // },
{ // {
label: '去骨138g', // label: '去骨138g',
value: '去骨138g' // value: '去骨138g'
}, // },
{ // {
label: '小鸡腿80g', // label: '小鸡腿80g',
value: '小鸡腿80g' // value: '小鸡腿80g'
}, // },
{ // {
label: '老卤95g', // label: '老卤95g',
value: '老卤95g' // value: '老卤95g'
}, // },
{ // {
label: '鸡肉豆堡', // label: '鸡肉豆堡',
value: '鸡肉豆堡' // value: '鸡肉豆堡'
}, // },
{ // {
label: '牛肉豆堡', // label: '牛肉豆堡',
value: '牛肉豆堡' // value: '牛肉豆堡'
} // }
], // ],
referenceKey: "plannedPromotionSpec", // referenceKey: "plannedPromotionSpec",
fill: true, // fill: true,
width: 190, // width: 190,
render: (_, row, col) => { // render: (_, row, col) => {
return ( // return (
<div> // <div>
<span>{row[col.referenceKey] || '-'}</span> // <span>{row[col.referenceKey] || '-'}</span>
<el-select modelValue={row[col.prop]} // <el-select modelValue={row[col.prop]}
onUpdate:modelValue={(value) => { // onUpdate:modelValue={(value) => {
row[col.prop] = value; // row[col.prop] = value;
submitChange(row, col); // submitChange(row, col);
}} // }}
disabled={!row[col.referenceKey]} // disabled={!row[col.referenceKey]}
placeholder="" // placeholder=""
clearable // clearable
> // >
{col.options.map(item => ( // {col.options.map(item => (
<el-option // <el-option
key={item.value} // key={item.value}
label={item.label} // label={item.label}
value={item.value} // value={item.value}
/> // />
))} // ))}
</el-select> // </el-select>
</div> // </div>
) // )
}, // },
// 请求时需要额外携带影响的列字段值 // // 请求时需要额外携带影响的列字段值
requestKey: ["specExecutionStatus", "promotionExecutionStatus"] // requestKey: ["specExecutionStatus", "promotionExecutionStatus"]
}, // },
{ // {
label: "档期规格是否执行", // label: "档期规格是否执行",
prop: "specExecutionStatus", // prop: "specExecutionStatus",
visible: true, // visible: true,
type: 'formula', // type: 'formula',
func: (row) => { // func: (row) => {
// 如果参考值是空则返回 '-' // // 如果参考值是空则返回 '-'
if (!row.plannedPromotionSpec) { // if (!row.plannedPromotionSpec) {
row.specExecutionStatus = '-'; // row.specExecutionStatus = '-';
return '-'; // return '-';
} // }
row.specExecutionStatus = row.plannedPromotionSpec === row.actualPromotionSpec ? '是' : '否'; // row.specExecutionStatus = row.plannedPromotionSpec === row.actualPromotionSpec ? '是' : '否';
return row.specExecutionStatus; // return row.specExecutionStatus;
}, // },
formulaStr: '公式:(档期计划促销规格 = 档期执行促销规格)', // formulaStr: '公式:(档期计划促销规格 = 档期执行促销规格)',
fill: true, // fill: true,
width: 150 // width: 150
}, // },
{ // {
label: "档期执行-促销口味", // label: "档期执行-促销口味",
prop: "actualPromotionFlavor", // prop: "actualPromotionFlavor",
visible: true, // visible: true,
type: 'select', // type: 'select',
options: [], // options: [],
referenceKey: "plannedPromotionFlavor", // referenceKey: "plannedPromotionFlavor",
fill: true, // fill: true,
width: 170, // width: 170,
render: (_, row, col) => { // render: (_, row, col) => {
// options 根据参考属性值来决定(计划值) // // options 根据参考属性值来决定(计划值)
let list = splitAndFilter(row[col.referenceKey]) // let list = splitAndFilter(row[col.referenceKey])
let isFullFlavor = false // let isFullFlavor = false
// 如果数组里有"全系列"/"全口味"则修改数组 // // 如果数组里有"全系列"/"全口味"则修改数组
if (list.includes('全口味')) { // if (list.includes('全口味')) {
list = [ // list = [
{ // {
label: '全口味', // label: '全口味',
value: '全口味' // value: '全口味'
}, // },
{ // {
label: '部分口味', // label: '部分口味',
value: '部分口味' // value: '部分口味'
} // }
] // ]
isFullFlavor = true // isFullFlavor = true
} else { // } else {
list = list.map(item => ({ // list = list.map(item => ({
label: item, // label: item,
value: item // value: item
})) // }))
isFullFlavor = false // isFullFlavor = false
} // }
// span 标签超出宽度时显示省略号 // // span 标签超出宽度时显示省略号
return ( // return (
<div> // <div>
<el-tooltip placement="top" content={row[col.referenceKey] || '-'} disabled={!isContentOverflow(col.referenceKey, row[col.referenceKey], col)}> // <el-tooltip placement="top" content={row[col.referenceKey] || '-'} disabled={!isContentOverflow(col.referenceKey, row[col.referenceKey], col)}>
<span > // <span >
{row[col.referenceKey] || '-'} // {row[col.referenceKey] || '-'}
</span> // </span>
</el-tooltip> // </el-tooltip>
<el-select modelValue={row[col.prop]} // <el-select modelValue={row[col.prop]}
onUpdate:modelValue={(value) => { // onUpdate:modelValue={(value) => {
row[col.prop] = value; // row[col.prop] = value;
submitChange(row, col); // submitChange(row, col);
}} // }}
disabled={!row[col.referenceKey]} // disabled={!row[col.referenceKey]}
placeholder="" // placeholder=""
clearable // clearable
multiple={!isFullFlavor} // multiple={!isFullFlavor}
collapse-tags={!isFullFlavor} // collapse-tags={!isFullFlavor}
collapse-tags-tooltip={!isFullFlavor}> // collapse-tags-tooltip={!isFullFlavor}>
{list.map(item => ( // {list.map(item => (
<el-option // <el-option
key={item.value} // key={item.value}
label={item.label} // label={item.label}
value={item.value} // value={item.value}
/> // />
))} // ))}
</el-select> // </el-select>
</div> // </div>
) // )
}, // },
// 请求时需要额外携带影响的列字段值 // // 请求时需要额外携带影响的列字段值
requestKey: ["flavorExecutionStatus", "promotionExecutionStatus"] // requestKey: ["flavorExecutionStatus", "promotionExecutionStatus"]
}, // },
{ // {
label: "档期口味是否执行", // label: "档期口味是否执行",
prop: "flavorExecutionStatus", // prop: "flavorExecutionStatus",
visible: true, // visible: true,
type: 'formula', // type: 'formula',
func: (row) => { // func: (row) => {
// 如果参考值是空则返回 '-' // // 如果参考值是空则返回 '-'
if (!row.plannedPromotionFlavor) { // if (!row.plannedPromotionFlavor) {
row.flavorExecutionStatus = '-'; // row.flavorExecutionStatus = '-';
return '-'; // return '-';
} // }
// 处理逗号的口味形成数组 // // 处理逗号的口味形成数组
let ppromotionFlavor = splitAndFilter(row.plannedPromotionFlavor) // let ppromotionFlavor = splitAndFilter(row.plannedPromotionFlavor)
if (!row.actualPromotionFlavor) { // if (!row.actualPromotionFlavor) {
// 判断空字符串 // // 判断空字符串
row.flavorExecutionStatus = '未执行'; // row.flavorExecutionStatus = '未执行';
} else if (row.actualPromotionFlavor?.length === 0) { // } else if (row.actualPromotionFlavor?.length === 0) {
// 空数组 // // 空数组
row.flavorExecutionStatus = '未执行'; // row.flavorExecutionStatus = '未执行';
} else { // } else {
if (row.actualPromotionFlavor === '全口味') { // if (row.actualPromotionFlavor === '全口味') {
row.flavorExecutionStatus = '执行'; // row.flavorExecutionStatus = '执行';
} else if (row.actualPromotionFlavor?.length === ppromotionFlavor.length) { // } else if (row.actualPromotionFlavor?.length === ppromotionFlavor.length) {
row.flavorExecutionStatus = '执行'; // row.flavorExecutionStatus = '执行';
} else if (row.actualPromotionFlavor?.length !== ppromotionFlavor?.length) { // } else if (row.actualPromotionFlavor?.length !== ppromotionFlavor?.length) {
row.flavorExecutionStatus = '部分执行'; // row.flavorExecutionStatus = '部分执行';
} // }
} // }
return row.flavorExecutionStatus; // return row.flavorExecutionStatus;
}, // },
formulaStr: '公式:(档期计划促销口味 = 档期执行促销口味)', // formulaStr: '公式:(档期计划促销口味 = 档期执行促销口味)',
fill: true, // fill: true,
width: 150 // width: 150
} // }
], // ],
prop: 'scheduleInfo', // prop: 'scheduleInfo',
visible: true // visible: true
}, // },
{ {
label: "合计费用", label: "合计费用",
prop: 'totalCostParent', prop: 'totalCostParent',
......
...@@ -2,14 +2,14 @@ ...@@ -2,14 +2,14 @@
<!-- 档期陈列 --> <!-- 档期陈列 -->
<SearchList :showSearch="showSearch" <SearchList :showSearch="showSearch"
@change="searchChange" /> @change="searchChange" />
<CommonPlan :tableData="tableData" <CustomTable :tableData="tableData"
:isLoading="isLoading" :isLoading="isLoading"
:total="total" :total="total"
:tableColumns="tableColumns" :tableColumns="tableColumns"
:chooseColumns="chooseColumns" :chooseColumns="chooseColumns"
:visibleProps="visibleProps" :visibleProps="visibleProps"
:params="params" :params="params"
:useFill="useFill" :showFill="showFill"
@updateColumns="updateColumns" @updateColumns="updateColumns"
@getTableList="getTableList" @getTableList="getTableList"
@updateShowSearch="updateShowSearch" /> @updateShowSearch="updateShowSearch" />
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<script setup <script setup
lang="jsx"> lang="jsx">
import CommonPlan from '@/views/promotion/components/CommonPlan' import CustomTable from '@/views/promotion/components/Table'
import SearchList from '@/views/promotion/components/SearchList' import SearchList from '@/views/promotion/components/SearchList'
import { getDisplayScheduleDetail, submitDisplayScheduleDetail } from '@/api' import { getDisplayScheduleDetail, submitDisplayScheduleDetail } from '@/api'
import { parseTime } from '@/utils' import { parseTime } from '@/utils'
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
import userStore from '@/store/modules/user' import userStore from '@/store/modules/user'
// 是否启用填报模式 // 是否启用填报模式
const useFill = userStore().hasQcMarketEmpInfo const showFill = userStore().hasQcMarketEmpInfo
/*************** 操作类型 ***************/ /*************** 操作类型 ***************/
// 全部列 // 全部列
......
...@@ -2,14 +2,14 @@ ...@@ -2,14 +2,14 @@
<!-- 零食陈列 --> <!-- 零食陈列 -->
<SearchList :showSearch="showSearch" <SearchList :showSearch="showSearch"
@change="searchChange" /> @change="searchChange" />
<CommonPlan :tableData="tableData" <CustomTable :tableData="tableData"
:isLoading="isLoading" :isLoading="isLoading"
:total="total" :total="total"
:tableColumns="tableColumns" :tableColumns="tableColumns"
:chooseColumns="chooseColumns" :chooseColumns="chooseColumns"
:visibleProps="visibleProps" :visibleProps="visibleProps"
:params="params" :params="params"
:useFill="useFill" :showFill="showFill"
@updateColumns="updateColumns" @updateColumns="updateColumns"
@getTableList="getTableList" @getTableList="getTableList"
@updateShowSearch="updateShowSearch" /> @updateShowSearch="updateShowSearch" />
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<script setup <script setup
lang="jsx"> lang="jsx">
import CommonPlan from '@/views/promotion/components/CommonPlan' import CustomTable from '@/views/promotion/components/Table'
import SearchList from '@/views/promotion/components/SearchList' import SearchList from '@/views/promotion/components/SearchList'
import { getSnackPlanList, submitSnackPlan } from '@/api' import { getSnackPlanList, submitSnackPlan } from '@/api'
import { parseTime } from '@/utils' import { parseTime } from '@/utils'
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
import userStore from '@/store/modules/user' import userStore from '@/store/modules/user'
// 是否启用填报模式 // 是否启用填报模式
const useFill = userStore().hasQcMarketEmpInfo const showFill = userStore().hasQcMarketEmpInfo
/*************** 操作类型 ***************/ /*************** 操作类型 ***************/
// 全部列 // 全部列
const baseColumns = ref([ const baseColumns = ref([
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论