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

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

parent 3f60d8d5
......@@ -141,6 +141,25 @@ const menus = [
},
],
},
{
name: '数据分析',
path: '/analysis',
icon: 'redraw',
children: [
{
name: '视频数据分析',
path: '/video',
},
{
name: '广告账户分析',
path: '/ad',
},
{
name: '部门分析',
path: '/department',
}
],
},
];
</script>
......
......@@ -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 @@
<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">
......
This diff is collapsed.
......@@ -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: 220px;" />
<el-date-picker v-model="publishRange" type="daterange" start-placeholder="发布开始日期"
end-placeholder="发布开始日期" range-separator="至" style="width: 240px;" />
<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>
<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;
};
......
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