Commit 6f5ecf40 authored by 黄同智's avatar 黄同智

任务协作-拆解表的弹窗表单,创建数据分析的路由

parent 3f60d8d5
...@@ -141,6 +141,25 @@ const menus = [ ...@@ -141,6 +141,25 @@ const menus = [
}, },
], ],
}, },
{
name: '数据分析',
path: '/analysis',
icon: 'redraw',
children: [
{
name: '视频数据分析',
path: '/video',
},
{
name: '广告账户分析',
path: '/ad',
},
{
name: '部门分析',
path: '/department',
}
],
},
]; ];
</script> </script>
......
...@@ -102,8 +102,30 @@ const routes = [ ...@@ -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 }
},
]
},
{ {
......
<template>
<div>
</div>
</template>
<script setup lang="ts">
</script>
<style scoped lang="scss">
</style>
\ No newline at end of file
<template>
<div>
</div>
</template>
<script setup lang="ts">
</script>
<style scoped lang="scss">
</style>
\ No newline at end of file
<template>
<div>
</div>
</template>
<script setup lang="ts">
</script>
<style scoped lang="scss">
</style>
\ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<el-dialog v-model="visible" title="Shipping address" width="1200" modal-class="xxxxx" align-center <el-dialog v-model="visible" title="Shipping address" width="1200" modal-class="xxxxx" align-center
:before-close="handleClose"> :before-close="handleClose">
<template #title> <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> </template>
<div class="h-700 over-auto px-20 pb-20"> <div class="h-700 over-auto px-20 pb-20">
<el-form ref="formRef" :model="form" label-width="100"> <el-form ref="formRef" :model="form" label-width="100">
......
This diff is collapsed.
...@@ -8,13 +8,12 @@ ...@@ -8,13 +8,12 @@
</div> </div>
</div> </div>
<div class="flex-items-center gap-10"> <div class="flex-items-center gap-10">
<el-date-picker v-model="publishRange" type="daterange" start-placeholder="2026-06-01" <el-date-picker v-model="publishRange" type="daterange" start-placeholder="发布开始日期"
end-placeholder="2026-06-30" range-separator="至" style="width: 220px;" /> end-placeholder="发布开始日期" range-separator="至" style="width: 240px;" />
<el-date-picker v-model="outputRange" type="daterange" start-placeholder="出片开始日期" <el-date-picker v-model="outputRange" type="daterange" start-placeholder="出片开始日期"
end-placeholder="出片结束日期" range-separator="至" style="width: 240px;" /> end-placeholder="出片结束日期" range-separator="至" style="width: 240px;" />
</div> </div>
</section> </section>
<section class="bg-fff round-6 p-14 mt-16 filter-card"> <section class="bg-fff round-6 p-14 mt-16 filter-card">
<div class="flex flex-wrap gap-10"> <div class="flex flex-wrap gap-10">
<div class="flex filter-combo"> <div class="flex filter-combo">
...@@ -22,7 +21,7 @@ ...@@ -22,7 +21,7 @@
<el-option label="发布人" value="publisher" /> <el-option label="发布人" value="publisher" />
<el-option label="部门" value="department" /> <el-option label="部门" value="department" />
</el-select> </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" <el-option v-for="item in publisherOptions" :key="item.value" :label="item.label"
:value="item.value" /> :value="item.value" />
</el-select> </el-select>
...@@ -32,8 +31,7 @@ ...@@ -32,8 +31,7 @@
<el-option label="出片人" value="output" /> <el-option label="出片人" value="output" />
<el-option label="小组" value="group" /> <el-option label="小组" value="group" />
</el-select> </el-select>
<el-select v-model="filters.outputUser" filterable clearable class="w-210" <el-select v-model="filters.outputUser" filterable clearable class="w-210" placeholder="请选择出片人">
placeholder="请选择出片人(支持输入搜索)">
<el-option v-for="item in outputUserOptions" :key="item.value" :label="item.label" <el-option v-for="item in outputUserOptions" :key="item.value" :label="item.label"
:value="item.value" /> :value="item.value" />
</el-select> </el-select>
...@@ -173,28 +171,31 @@ ...@@ -173,28 +171,31 @@
</el-table-column> </el-table-column>
<el-table-column prop="product" width="150"> <el-table-column prop="product" width="150">
<template #header> <template #header>
<span>产品</span> <span>产品</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="scriptType" width="150"> <el-table-column prop="scriptType" width="150">
<template #header> <template #header>
<span>脚本类型</span> <span>脚本类型</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="splitStatus" label="脚本拆解表" width="140" fixed="right"> <el-table-column prop="splitStatus" label="脚本拆解表" width="140" fixed="right">
<template #default="{ row }"> <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> }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="px-16 py-12 flex-between table-footer"> <div class="px-16 py-12 flex-between table-footer">
<span class="color-000">共 {{ filteredList.length }} 条</span> <span class="color-000">共 {{ filteredList.length }} 条</span>
<el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :page-sizes="[50, 100]" <el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize"
background layout="sizes, prev, pager, next, jumper" :total="filteredList.length" /> :page-sizes="[10, 20, 30, 50, 100]" background layout="sizes, prev, pager, next, jumper"
:total="filteredList.length" />
</div> </div>
</section> </section>
<TaskPublishDialog v-model:visible="visiblePublish" @confirm="handlePublishConfirm" /> <TaskPublishDialog v-model:visible="visiblePublish" @confirm="handlePublishConfirm" />
<ScriptBreakdownDialog v-model:visible="visibleBreakdown" :breakdown-id="currentBreakdownId"
@save="handleBreakdownSave" />
</div> </div>
</template> </template>
...@@ -202,6 +203,7 @@ ...@@ -202,6 +203,7 @@
import { computed, reactive, ref } from 'vue'; import { computed, reactive, ref } from 'vue';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
import TaskPublishDialog from '@/components/TaskPublishDialog/index.vue'; import TaskPublishDialog from '@/components/TaskPublishDialog/index.vue';
import ScriptBreakdownDialog from './components/BreakdownDialog.vue';
type TaskItem = { type TaskItem = {
id: number; id: number;
...@@ -226,6 +228,8 @@ type TaskItem = { ...@@ -226,6 +228,8 @@ type TaskItem = {
const activeTab = ref('all'); const activeTab = ref('all');
const activeStatus = ref('all'); const activeStatus = ref('all');
const visiblePublish = ref(false); const visiblePublish = ref(false);
const visibleBreakdown = ref(false);
const currentBreakdownId = ref('CJB-06131146256-7133');
const sortType = ref('publishTime'); const sortType = ref('publishTime');
const currentPage = ref(1); const currentPage = ref(1);
const pageSize = ref(50); const pageSize = ref(50);
...@@ -508,6 +512,15 @@ const showAction = (row: TaskItem, action: string) => { ...@@ -508,6 +512,15 @@ const showAction = (row: TaskItem, action: string) => {
ElMessage.success(`${action}: ${row.taskId}`); 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 = () => { const publishTask = () => {
visiblePublish.value = true; visiblePublish.value = true;
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment