Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
5b10c26a
提交
5b10c26a
authored
1月 21, 2025
作者:
lidongxu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(finance): 直播间分类-达人可以下载全部达人下属数据
同上
上级
cc88680b
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
48 行增加
和
11 行删除
+48
-11
finance.js
src/api/bi/finance.js
+34
-5
request.js
src/utils/request.js
+1
-1
index.vue
src/views/bi/finance/index.vue
+13
-5
没有找到文件。
src/api/bi/finance.js
浏览文件 @
5b10c26a
import
request
from
'@/utils/request'
import
request
from
'@/utils/request'
import
{
parseTime
}
from
'@/utils'
import
{
parseTime
}
from
'@/utils'
import
{
saveAs
}
from
'file-saver'
;
/**
/**
...
@@ -51,7 +52,7 @@ export const getFinanceListAPI = (data) => {
...
@@ -51,7 +52,7 @@ export const getFinanceListAPI = (data) => {
series
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
0
]),
series
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
0
]),
goodsName
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
1
]),
goodsName
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
1
]),
startDate
:
parseTime
(
data
.
date
[
0
],
`{y}-{m}-{d}`
),
startDate
:
parseTime
(
data
.
date
[
0
],
`{y}-{m}-{d}`
),
endDate
:
parseTime
(
data
.
date
[
1
],
`{y}-{m}-{d}`
),
endDate
:
parseTime
(
data
.
date
[
1
],
`{y}-{m}-{d}`
),
pageNum
:
data
.
pageNum
,
pageNum
:
data
.
pageNum
,
pageSize
:
data
.
pageSize
pageSize
:
data
.
pageSize
}
}
...
@@ -77,7 +78,7 @@ export const getFinanceDetailAPI = (data) => {
...
@@ -77,7 +78,7 @@ export const getFinanceDetailAPI = (data) => {
series
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
0
]),
series
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
0
]),
goodsName
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
1
]),
goodsName
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
1
]),
startDate
:
parseTime
(
data
.
date
[
0
],
`{y}-{m}-{d}`
),
startDate
:
parseTime
(
data
.
date
[
0
],
`{y}-{m}-{d}`
),
endDate
:
parseTime
(
data
.
date
[
1
],
`{y}-{m}-{d}`
),
endDate
:
parseTime
(
data
.
date
[
1
],
`{y}-{m}-{d}`
),
pageNum
:
data
.
pageNum
,
pageNum
:
data
.
pageNum
,
pageSize
:
data
.
pageSize
,
pageSize
:
data
.
pageSize
,
// 直播间展开行里的订单详情需要带分销商(没有值参数也不会传递)
// 直播间展开行里的订单详情需要带分销商(没有值参数也不会传递)
...
@@ -106,10 +107,39 @@ export const getFinanceSubListAPI = (data) => {
...
@@ -106,10 +107,39 @@ export const getFinanceSubListAPI = (data) => {
series
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
0
]),
series
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
0
]),
goodsName
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
1
]),
goodsName
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
1
]),
startDate
:
parseTime
(
data
.
date
[
0
],
`{y}-{m}-{d}`
),
startDate
:
parseTime
(
data
.
date
[
0
],
`{y}-{m}-{d}`
),
endDate
:
parseTime
(
data
.
date
[
1
],
`{y}-{m}-{d}`
),
endDate
:
parseTime
(
data
.
date
[
1
],
`{y}-{m}-{d}`
),
pageNum
:
data
.
pageNum
,
pageNum
:
data
.
pageNum
,
pageSize
:
data
.
pageSize
pageSize
:
data
.
pageSize
}
}
})
})
}
}
\ No newline at end of file
/**
* 下载达人数据表格
*/
export
const
downloadFinanceListAPI
=
async
(
data
)
=>
{
const
jsonString
=
JSON
.
stringify
({
zbjQdType
:
data
.
zbjQdType
,
flavor
:
data
.
flavorErp
,
specName
:
data
.
specNameErp
,
zbjQdTypeAll
:
false
,
flavorErpAll
:
data
.
flavorErpAll
,
specNameErpAll
:
data
.
specNameErpAll
,
series
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
0
]),
goodsName
:
data
.
seriesPrdMap
.
map
(
o
=>
o
[
1
]),
startDate
:
parseTime
(
data
.
date
[
0
],
`{y}-{m}-{d}`
),
endDate
:
parseTime
(
data
.
date
[
1
],
`{y}-{m}-{d}`
),
subType
:
0
,
// 代表直播间的展开数据
});
const
res
=
await
request
({
url
:
'/bi/finance/cost/export'
,
method
:
'POST'
,
responseType
:
'blob'
,
data
:
jsonString
})
// 保存文件到本地
saveAs
(
res
,
'财务分析-达人数据.xlsx'
);
}
src/utils/request.js
浏览文件 @
5b10c26a
...
@@ -21,7 +21,7 @@ const service = axios.create({
...
@@ -21,7 +21,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
// axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL
:
import
.
meta
.
env
.
VITE_APP_BASE_API
,
baseURL
:
import
.
meta
.
env
.
VITE_APP_BASE_API
,
// 超时
// 超时
timeout
:
1
0000
timeout
:
9
0000
})
})
// request拦截器
// request拦截器
...
...
src/views/bi/finance/index.vue
浏览文件 @
5b10c26a
...
@@ -162,11 +162,15 @@
...
@@ -162,11 +162,15 @@
</
template
>
</
template
>
<el-table-column
label=
"操作"
<el-table-column
label=
"操作"
width=
"
12
0"
>
width=
"
25
0"
>
<
template
v-slot=
"scope"
>
<
template
v-slot=
"scope"
>
<el-button
type=
"primary"
<el-button
type=
"primary"
link
link
@
click=
"rowClick(scope.row)"
>
订单详情
</el-button>
@
click=
"rowClick(scope.row)"
>
订单详情
</el-button>
<el-button
type=
"primary"
v-if=
"scope.row.zbjQdType === '达人'"
link
@
click=
"downAllExpert(scope.row)"
>
下载全部达人
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -213,7 +217,7 @@
...
@@ -213,7 +217,7 @@
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
getBrandListAPI
,
getTasteListAPI
,
getSpecListAPI
,
getSeriesListAPI
,
getProductListAPI
,
getFinanceListAPI
,
getFinanceDetailAPI
,
getFinanceSubListAPI
}
from
'@/api'
import
{
getBrandListAPI
,
getTasteListAPI
,
getSpecListAPI
,
getSeriesListAPI
,
getProductListAPI
,
getFinanceListAPI
,
getFinanceDetailAPI
,
getFinanceSubListAPI
,
downloadFinanceListAPI
}
from
'@/api'
import
{
useDatePickerOptions
}
from
'@/hooks'
import
{
useDatePickerOptions
}
from
'@/hooks'
import
{
formatNumberWithUnit
,
parseTime
}
from
'@/utils'
import
{
formatNumberWithUnit
,
parseTime
}
from
'@/utils'
...
@@ -489,6 +493,13 @@ const getSubList = async () => {
...
@@ -489,6 +493,13 @@ const getSubList = async () => {
expandTotal
.
value
=
res
.
data
.
total
expandTotal
.
value
=
res
.
data
.
total
expandLoading
.
value
=
false
expandLoading
.
value
=
false
}
}
const
downAllExpert
=
async
(
row
)
=>
{
const
res
=
await
downloadFinanceListAPI
({
...
queryParams
.
value
,
zbjQdType
:
[
row
.
zbjQdType
],
})
console
.
log
(
res
)
}
const
handleMouseDown
=
(
event
)
=>
{
const
handleMouseDown
=
(
event
)
=>
{
if
(
event
.
button
===
1
)
{
// 1 表示鼠标中键
if
(
event
.
button
===
1
)
{
// 1 表示鼠标中键
...
@@ -535,9 +546,6 @@ const handleMouseDown = (event) => {
...
@@ -535,9 +546,6 @@ const handleMouseDown = (event) => {
// immediate: true
// immediate: true
// })
// })
// 展开行
// 详情数据
// 详情数据
const
detailList
=
ref
([])
const
detailList
=
ref
([])
const
detailColumns
=
ref
([
const
detailColumns
=
ref
([
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论