Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
a7566635
提交
a7566635
authored
12月 17, 2025
作者:
lidongxu
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'ap' into dev
上级
647ffb20
f6303ce6
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
64 行增加
和
32 行删除
+64
-32
element-ui.scss
src/assets/styles/element-ui.scss
+6
-0
upload.js
src/utils/upload.js
+1
-0
index.vue
...ews/promotion/display_schedule/components/Table/index.vue
+48
-23
display.vue
src/views/promotion/display_schedule/tabs/display.vue
+2
-3
schedule.vue
src/views/promotion/display_schedule/tabs/schedule.vue
+1
-1
schedule_dis.vue
src/views/promotion/display_schedule/tabs/schedule_dis.vue
+3
-1
six_little_diamonds.vue
...s/promotion/display_schedule/tabs/six_little_diamonds.vue
+1
-1
snack.vue
src/views/promotion/display_schedule/tabs/snack.vue
+1
-1
three_two_seconds.vue
...ews/promotion/display_schedule/tabs/three_two_seconds.vue
+1
-1
schedule_dis.vue
...romotion/display_schedule_dashboard/tabs/schedule_dis.vue
+0
-1
没有找到文件。
src/assets/styles/element-ui.scss
浏览文件 @
a7566635
...
@@ -212,4 +212,9 @@ html.dark {
...
@@ -212,4 +212,9 @@ html.dark {
.popup-result
.title
{
.popup-result
.title
{
background
:
var
(
--
cron-border
);
background
:
var
(
--
cron-border
);
}
}
}
// messageBox 样式
.is-message-box
{
z-index
:
10000
!
important
;
}
}
\ No newline at end of file
src/utils/upload.js
浏览文件 @
a7566635
...
@@ -19,6 +19,7 @@ export const chooseFile = ({ accept, id = 'fileInput' }) => {
...
@@ -19,6 +19,7 @@ export const chooseFile = ({ accept, id = 'fileInput' }) => {
// 关闭窗口没选择文件
// 关闭窗口没选择文件
window
.
addEventListener
(
'cancel'
,
()
=>
{
window
.
addEventListener
(
'cancel'
,
()
=>
{
document
.
body
.
removeChild
(
fileInput
)
document
.
body
.
removeChild
(
fileInput
)
reject
(
'请选择文件'
)
})
})
document
.
body
.
appendChild
(
fileInput
)
document
.
body
.
appendChild
(
fileInput
)
fileInput
.
click
()
fileInput
.
click
()
...
...
src/views/promotion/display_schedule/components/Table/index.vue
浏览文件 @
a7566635
...
@@ -32,20 +32,20 @@
...
@@ -32,20 +32,20 @@
<el-tooltip
class=
"item"
<el-tooltip
class=
"item"
effect=
"dark"
effect=
"dark"
content=
"下载表格"
content=
"下载表格"
placement=
"top"
placement=
"top"
>
v-if=
"tabsType === '常规陈列'"
>
<el-button
@
click=
"downloadTable"
<el-button
@
click=
"downloadTable"
type=
"primary"
>
type=
"primary"
v-hasPermi=
"['display_downExcel']"
>
下载表格
下载表格
</el-button>
</el-button>
</el-tooltip>
</el-tooltip>
<el-tooltip
class=
"item"
<el-tooltip
class=
"item"
effect=
"dark"
effect=
"dark"
content=
"上传表格"
content=
"上传表格"
placement=
"top"
placement=
"top"
>
v-if=
"tabsType === '常规陈列'"
>
<el-button
@
click=
"uploadExcel"
<el-button
@
click=
"uploadExcel"
type=
"success"
>
type=
"success"
v-hasPermi=
"['display_upExcel']"
>
上传表格
上传表格
</el-button>
</el-button>
</el-tooltip>
</el-tooltip>
...
@@ -138,10 +138,11 @@
...
@@ -138,10 +138,11 @@
draggable
draggable
overflow
overflow
@
close=
"handleDialogCloseUpload"
>
@
close=
"handleDialogCloseUpload"
>
<div>
<div
class=
"table-container"
>
<!-- 计划表格 -->
<!-- 计划表格 -->
<el-table
:data=
"planTableList"
<el-table
:data=
"planTableList"
border
border
class=
"auto-fit-header-table"
style=
"width: 100%"
style=
"width: 100%"
show-overflow-tooltip
show-overflow-tooltip
:row-class-name=
"tableRowClassName"
>
:row-class-name=
"tableRowClassName"
>
...
@@ -153,7 +154,17 @@
...
@@ -153,7 +154,17 @@
:key=
"item.label"
:key=
"item.label"
:prop=
"item.prop"
:prop=
"item.prop"
:label=
"item.label"
:label=
"item.label"
:width=
"item.width"
/>
:width=
"item.width"
class-name=
"column-style"
>
<
template
#
header=
"{ column }"
>
<span
class=
"formula-column"
>
<div
class=
"column"
>
<p>
{{
item
.
label
}}
</p>
<p
v-if=
"item.subLabel"
>
{{
item
.
subLabel
}}
</p>
</div>
</span>
</
template
>
</el-table-column>
</el-table>
</el-table>
</div>
</div>
<
template
#
footer
>
<
template
#
footer
>
...
@@ -289,22 +300,36 @@ const typeObj = {
...
@@ -289,22 +300,36 @@ const typeObj = {
}
}
const
downloadTable
=
async
()
=>
{
const
downloadTable
=
async
()
=>
{
proxy
.
$modal
.
loading
(
'正在下载表格,请稍候...'
)
proxy
.
$modal
.
loading
(
'正在下载表格,请稍候...'
)
const
res
=
await
downloadDisplayScheduleTable
({
try
{
...
props
.
params
,
const
res
=
await
downloadDisplayScheduleTable
({
salesMonth
:
parseTime
(
props
.
params
.
salesMonth
,
'{y}-{m}'
),
...
props
.
params
,
pageNum
:
null
,
salesMonth
:
parseTime
(
props
.
params
.
salesMonth
,
'{y}-{m}'
),
pageSize
:
null
,
pageNum
:
null
,
pageType
:
typeObj
[
props
.
tabsType
]
pageSize
:
null
,
})
pageType
:
typeObj
[
props
.
tabsType
]
// 如果 salesMonth 为空,默认当前月
})
if
(
props
.
params
.
salesMonth
)
{
if
(
res
.
type
===
'application/json'
)
{
saveAs
(
res
,
`
${
props
.
tabsType
}
计划
${
parseTime
(
props
.
params
.
salesMonth
,
'{y}-{m}'
)}
.xlsx`
)
// 本次返回的不是二进制,而是 JSON 被转成了 Blob
}
else
{
const
result
=
await
res
.
text
()
saveAs
(
res
,
`
${
props
.
tabsType
}
计划.xlsx`
)
const
response
=
JSON
.
parse
(
result
)
}
if
(
response
.
code
===
910
)
{
proxy
.
$modal
.
closeLoading
()
proxy
.
$modal
.
msgError
(
response
.
msg
||
'下载表格失败'
)
return
}
}
// 下载完成后,执行回调函数
// 如果 salesMonth 为空,默认当前月
proxy
.
$modal
.
closeLoading
()
if
(
props
.
params
.
salesMonth
)
{
saveAs
(
res
,
`
${
props
.
tabsType
}
计划
${
parseTime
(
new
Date
(),
'{y}-{m}-{d} {h}-{i}-{s}'
)}
.xlsx`
)
}
else
{
saveAs
(
res
,
`
${
props
.
tabsType
}
计划
${
parseTime
(
new
Date
(),
'{y}-{m}-{d} {h}-{i}-{s}'
)}
.xlsx`
)
}
// 下载完成后,执行回调函数
proxy
.
$modal
.
closeLoading
()
}
catch
(
error
)
{
proxy
.
$modal
.
closeLoading
()
}
}
}
// 上传表格
// 上传表格
...
...
src/views/promotion/display_schedule/tabs/display.vue
浏览文件 @
a7566635
...
@@ -10,8 +10,7 @@
...
@@ -10,8 +10,7 @@
:isLoading=
"isLoading"
:isLoading=
"isLoading"
tabsType=
"常规陈列"
tabsType=
"常规陈列"
@
getTableList=
"getTableList"
@
getTableList=
"getTableList"
@
updateShowSearch=
"v => showSearch.value = v"
@
updateShowSearch=
"v => showSearch = v"
/>
/>
</
template
>
</
template
>
<
script
setup
<
script
setup
...
@@ -116,7 +115,7 @@
...
@@ -116,7 +115,7 @@
/*************** 筛选 ***************/
/*************** 筛选 ***************/
const
showSearch
=
ref
(
true
)
const
showSearch
=
ref
(
true
)
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
...
...
src/views/promotion/display_schedule/tabs/schedule.vue
浏览文件 @
a7566635
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
:formatter=
"formatterFn"
:formatter=
"formatterFn"
tabsType=
"档期计划"
tabsType=
"档期计划"
@
getTableList=
"getTableList"
@
getTableList=
"getTableList"
@
updateShowSearch=
"v => showSearch
.value
= v"
/>
@
updateShowSearch=
"v => showSearch = v"
/>
<!-- 弹窗:实际与计划不一致,让用户补充实际内容 -->
<!-- 弹窗:实际与计划不一致,让用户补充实际内容 -->
<el-dialog
v-model=
"showPromotionDialog"
<el-dialog
v-model=
"showPromotionDialog"
title=
"请输入实际促销机制内容"
title=
"请输入实际促销机制内容"
...
...
src/views/promotion/display_schedule/tabs/schedule_dis.vue
浏览文件 @
a7566635
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
:isLoading=
"isLoading"
:isLoading=
"isLoading"
tabsType=
"档期陈列"
tabsType=
"档期陈列"
@
getTableList=
"getTableList"
@
getTableList=
"getTableList"
@
updateShowSearch=
"v => showSearch
.value
= v"
/>
@
updateShowSearch=
"v => showSearch = v"
/>
</
template
>
</
template
>
<
script
setup
<
script
setup
...
@@ -52,6 +52,8 @@
...
@@ -52,6 +52,8 @@
actualEndCapQty
:
row
.
actualEndCapQty
||
0
,
actualEndCapQty
:
row
.
actualEndCapQty
||
0
,
// 地堆平米数实际
// 地堆平米数实际
actualFloorStackArea
:
row
.
actualFloorStackArea
||
0
,
actualFloorStackArea
:
row
.
actualFloorStackArea
||
0
,
// 地堆数量实际(后台要数值)
actualFloorStackQty
:
row
.
actualFloorStackQty
*
1
||
0
,
})
})
}
}
// 全部列
// 全部列
...
...
src/views/promotion/display_schedule/tabs/six_little_diamonds.vue
浏览文件 @
a7566635
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
:isLoading=
"isLoading"
:isLoading=
"isLoading"
tabsType=
"六小金刚"
tabsType=
"六小金刚"
@
getTableList=
"getTableList"
@
getTableList=
"getTableList"
@
updateShowSearch=
"v => showSearch
.value
= v"
/>
@
updateShowSearch=
"v => showSearch = v"
/>
</
template
>
</
template
>
<
script
setup
<
script
setup
...
...
src/views/promotion/display_schedule/tabs/snack.vue
浏览文件 @
a7566635
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
:isLoading=
"isLoading"
:isLoading=
"isLoading"
tabsType=
"零食陈列"
tabsType=
"零食陈列"
@
getTableList=
"getTableList"
@
getTableList=
"getTableList"
@
updateShowSearch=
"v => showSearch
.value
= v"
/>
@
updateShowSearch=
"v => showSearch = v"
/>
</
template
>
</
template
>
<
script
setup
<
script
setup
...
...
src/views/promotion/display_schedule/tabs/three_two_seconds.vue
浏览文件 @
a7566635
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
:isLoading=
"isLoading"
:isLoading=
"isLoading"
tabsType=
"三米两秒"
tabsType=
"三米两秒"
@
getTableList=
"getTableList"
@
getTableList=
"getTableList"
@
updateShowSearch=
"v => showSearch
.value
= v"
/>
@
updateShowSearch=
"v => showSearch = v"
/>
</
template
>
</
template
>
<
script
setup
<
script
setup
...
...
src/views/promotion/display_schedule_dashboard/tabs/schedule_dis.vue
浏览文件 @
a7566635
...
@@ -78,7 +78,6 @@
...
@@ -78,7 +78,6 @@
'经销商-分析'
:
getDisplayScheduleDashboardListStore
,
'经销商-分析'
:
getDisplayScheduleDashboardListStore
,
}
}
const
getTableList
=
async
()
=>
{
const
getTableList
=
async
()
=>
{
console
.
log
(
'走了吗?'
)
isLoading
.
value
=
true
isLoading
.
value
=
true
const
res
=
await
apiObj
[
queryParams
.
operation
]({
const
res
=
await
apiObj
[
queryParams
.
operation
]({
...
queryParams
,
...
queryParams
,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论