Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mengchangaigc
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
姚珂
mengchangaigc
Commits
6f5ecf40
Commit
6f5ecf40
authored
Aug 21, 2026
by
黄同智
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
任务协作-拆解表的弹窗表单,创建数据分析的路由
parent
3f60d8d5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
110 additions
and
14 deletions
+110
-14
index.vue
apps/web-vue/src/layout/index.vue
+19
-0
index.ts
apps/web-vue/src/router/index.ts
+24
-2
ad.vue
apps/web-vue/src/views/analysis/ad.vue
+14
-0
department.vue
apps/web-vue/src/views/analysis/department.vue
+14
-0
video.vue
apps/web-vue/src/views/analysis/video.vue
+14
-0
UploadDialog.vue
apps/web-vue/src/views/resource/script/UploadDialog.vue
+1
-1
BreakdownDialog.vue
apps/web-vue/src/views/task/components/BreakdownDialog.vue
+0
-0
index.vue
apps/web-vue/src/views/task/index.vue
+24
-11
No files found.
apps/web-vue/src/layout/index.vue
View file @
6f5ecf40
...
...
@@ -141,6 +141,25 @@ const menus = [
},
],
},
{
name
:
'数据分析'
,
path
:
'/analysis'
,
icon
:
'redraw'
,
children
:
[
{
name
:
'视频数据分析'
,
path
:
'/video'
,
},
{
name
:
'广告账户分析'
,
path
:
'/ad'
,
},
{
name
:
'部门分析'
,
path
:
'/department'
,
}
],
},
];
</
script
>
...
...
apps/web-vue/src/router/index.ts
View file @
6f5ecf40
...
...
@@ -102,8 +102,30 @@ const routes = [
},
]
},
{
path
:
'/analysis'
,
component
:
Layout
,
children
:
[
{
path
:
'video'
,
name
:
'VideoData'
,
component
:
()
=>
import
(
'@/views/analysis/video.vue'
),
meta
:
{
title
:
'视频数据分析'
,
icon
:
''
,
affix
:
true
}
},
{
path
:
'ad'
,
name
:
'AdData'
,
component
:
()
=>
import
(
'@/views/analysis/ad.vue'
),
meta
:
{
title
:
'广告账户分析'
,
icon
:
''
,
affix
:
true
}
},
{
path
:
'department'
,
name
:
'DepartmentData'
,
component
:
()
=>
import
(
'@/views/analysis/department.vue'
),
meta
:
{
title
:
'部门分析'
,
icon
:
''
,
affix
:
true
}
},
]
},
{
...
...
apps/web-vue/src/views/analysis/ad.vue
0 → 100644
View file @
6f5ecf40
<
template
>
<div>
</div>
</
template
>
<
script
setup
lang=
"ts"
>
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
\ No newline at end of file
apps/web-vue/src/views/analysis/department.vue
0 → 100644
View file @
6f5ecf40
<
template
>
<div>
</div>
</
template
>
<
script
setup
lang=
"ts"
>
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
\ No newline at end of file
apps/web-vue/src/views/analysis/video.vue
0 → 100644
View file @
6f5ecf40
<
template
>
<div>
</div>
</
template
>
<
script
setup
lang=
"ts"
>
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
\ No newline at end of file
apps/web-vue/src/views/resource/script/UploadDialog.vue
View file @
6f5ecf40
...
...
@@ -2,7 +2,7 @@
<el-dialog
v-model=
"visible"
title=
"Shipping address"
width=
"1200"
modal-class=
"xxxxx"
align-center
:before-close=
"handleClose"
>
<template
#
title
>
<div
class=
"fs-18 font-bold py-10 pl-20"
>
视频上传
</div>
<div
class=
"fs-18 font-bold py-10 pl-20"
>
上传脚本
</div>
</
template
>
<div
class=
"h-700 over-auto px-20 pb-20"
>
<el-form
ref=
"formRef"
:model=
"form"
label-width=
"100"
>
...
...
apps/web-vue/src/views/task/components/BreakdownDialog.vue
0 → 100644
View file @
6f5ecf40
This diff is collapsed.
Click to expand it.
apps/web-vue/src/views/task/index.vue
View file @
6f5ecf40
...
...
@@ -8,13 +8,12 @@
</div>
</div>
<div
class=
"flex-items-center gap-10"
>
<el-date-picker
v-model=
"publishRange"
type=
"daterange"
start-placeholder=
"
2026-06-01
"
end-placeholder=
"
2026-06-30"
range-separator=
"至"
style=
"width: 22
0px;"
/>
<el-date-picker
v-model=
"publishRange"
type=
"daterange"
start-placeholder=
"
发布开始日期
"
end-placeholder=
"
发布开始日期"
range-separator=
"至"
style=
"width: 24
0px;"
/>
<el-date-picker
v-model=
"outputRange"
type=
"daterange"
start-placeholder=
"出片开始日期"
end-placeholder=
"出片结束日期"
range-separator=
"至"
style=
"width: 240px;"
/>
</div>
</section>
<section
class=
"bg-fff round-6 p-14 mt-16 filter-card"
>
<div
class=
"flex flex-wrap gap-10"
>
<div
class=
"flex filter-combo"
>
...
...
@@ -22,7 +21,7 @@
<el-option
label=
"发布人"
value=
"publisher"
/>
<el-option
label=
"部门"
value=
"department"
/>
</el-select>
<el-select
v-model=
"filters.publisher"
filterable
clearable
class=
"w-210"
placeholder=
"请选择
(支持输入搜索)
"
>
<el-select
v-model=
"filters.publisher"
filterable
clearable
class=
"w-210"
placeholder=
"请选择
发布人
"
>
<el-option
v-for=
"item in publisherOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
...
...
@@ -32,8 +31,7 @@
<el-option
label=
"出片人"
value=
"output"
/>
<el-option
label=
"小组"
value=
"group"
/>
</el-select>
<el-select
v-model=
"filters.outputUser"
filterable
clearable
class=
"w-210"
placeholder=
"请选择出片人(支持输入搜索)"
>
<el-select
v-model=
"filters.outputUser"
filterable
clearable
class=
"w-210"
placeholder=
"请选择出片人"
>
<el-option
v-for=
"item in outputUserOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
...
...
@@ -173,28 +171,31 @@
</el-table-column>
<el-table-column
prop=
"product"
width=
"150"
>
<
template
#
header
>
<span>
产品
⌕
</span>
<span>
产品
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"scriptType"
width=
"150"
>
<
template
#
header
>
<span>
脚本类型
⌕
</span>
<span>
脚本类型
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"splitStatus"
label=
"脚本拆解表"
width=
"140"
fixed=
"right"
>
<
template
#
default=
"{ row }"
>
<el-button
type=
"primary"
link
@
click=
"
showAction(row, '填写拆解表'
)"
>
{{
row
.
splitStatus
<el-button
type=
"primary"
link
@
click=
"
openBreakdownDialog(row
)"
>
{{
row
.
splitStatus
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"px-16 py-12 flex-between table-footer"
>
<span
class=
"color-000"
>
共 {{ filteredList.length }} 条
</span>
<el-pagination
v-model:current-page=
"currentPage"
v-model:page-size=
"pageSize"
:page-sizes=
"[50, 100]"
background
layout=
"sizes, prev, pager, next, jumper"
:total=
"filteredList.length"
/>
<el-pagination
v-model:current-page=
"currentPage"
v-model:page-size=
"pageSize"
:page-sizes=
"[10, 20, 30, 50, 100]"
background
layout=
"sizes, prev, pager, next, jumper"
:total=
"filteredList.length"
/>
</div>
</section>
<TaskPublishDialog
v-model:visible=
"visiblePublish"
@
confirm=
"handlePublishConfirm"
/>
<ScriptBreakdownDialog
v-model:visible=
"visibleBreakdown"
:breakdown-id=
"currentBreakdownId"
@
save=
"handleBreakdownSave"
/>
</div>
</template>
...
...
@@ -202,6 +203,7 @@
import
{
computed
,
reactive
,
ref
}
from
'vue'
;
import
{
ElMessage
}
from
'element-plus'
;
import
TaskPublishDialog
from
'@/components/TaskPublishDialog/index.vue'
;
import
ScriptBreakdownDialog
from
'./components/BreakdownDialog.vue'
;
type
TaskItem
=
{
id
:
number
;
...
...
@@ -226,6 +228,8 @@ type TaskItem = {
const
activeTab
=
ref
(
'all'
);
const
activeStatus
=
ref
(
'all'
);
const
visiblePublish
=
ref
(
false
);
const
visibleBreakdown
=
ref
(
false
);
const
currentBreakdownId
=
ref
(
'CJB-06131146256-7133'
);
const
sortType
=
ref
(
'publishTime'
);
const
currentPage
=
ref
(
1
);
const
pageSize
=
ref
(
50
);
...
...
@@ -508,6 +512,15 @@ const showAction = (row: TaskItem, action: string) => {
ElMessage
.
success
(
`
${
action
}
:
${
row
.
taskId
}
`
);
};
const
openBreakdownDialog
=
(
row
:
TaskItem
)
=>
{
currentBreakdownId
.
value
=
`CJB-
${
row
.
taskId
}
-7133`
;
visibleBreakdown
.
value
=
true
;
};
const
handleBreakdownSave
=
(
form
:
any
)
=>
{
ElMessage
.
success
(
`已保存拆解表:
${
form
.
breakdownId
}
`
);
};
const
publishTask
=
()
=>
{
visiblePublish
.
value
=
true
;
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment