feat : 首页待办/已办查看更多列表
This commit is contained in:
@@ -190,6 +190,24 @@ const router = createRouter({
|
||||
breadcrumb: false
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/todolist',
|
||||
name: 'Todolist',
|
||||
component: () => import('@/views/todoList/index.vue'),
|
||||
meta: {
|
||||
title: '待办',
|
||||
breadcrumb: false
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/donelist',
|
||||
name: 'Donelist',
|
||||
component: () => import('@/views/doneList/index.vue'),
|
||||
meta: {
|
||||
title: '已办',
|
||||
breadcrumb: false
|
||||
}
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
139
src/views/doneList/index.vue
Normal file
139
src/views/doneList/index.vue
Normal file
@@ -0,0 +1,139 @@
|
||||
<template>
|
||||
<fvTable ref="tableIns" :tableConfig="tableConfig" style="margin-top: 15px"></fvTable>
|
||||
</template>
|
||||
|
||||
<script setup lang="jsx">
|
||||
const router = useRouter()
|
||||
const tableIns = ref()
|
||||
const tableConfig = reactive({
|
||||
columns: [
|
||||
{
|
||||
prop: 'index',
|
||||
type: 'index',
|
||||
label: '序号',
|
||||
align: 'center',
|
||||
width:60,
|
||||
index: index => {
|
||||
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
|
||||
}
|
||||
},
|
||||
{
|
||||
prop: 'targetName',
|
||||
label: '名称',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
prop: 'initiatorName',
|
||||
label: '发起人',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
prop: 'targetState',
|
||||
label: '流程类型',
|
||||
align: 'center',
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
if (row.targetState !== null || row.targetState !== undefined) {
|
||||
return (<Tag dictType={'todo_type'} value={row.targetState}/>)
|
||||
} else {
|
||||
return '--'
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
prop: 'submitTime',
|
||||
label: '提交时间',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
prop: 'oper',
|
||||
label: '操作',
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 150,
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
let btn = []
|
||||
btn.push({label: '查看', func: () => handleView(row), type: 'primary'})
|
||||
return (
|
||||
<div style={{width: '100%'}}>
|
||||
{
|
||||
btn.map(item => (
|
||||
<el-button
|
||||
type={item.type}
|
||||
onClick={() => item.func()}
|
||||
link
|
||||
>
|
||||
{item.label}
|
||||
</el-button>
|
||||
))
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
],
|
||||
api: '/workflow/mosr/process/task/about',
|
||||
})
|
||||
|
||||
const handleView = (row) => {
|
||||
if (row.targetState == '00' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Requirement/detail',
|
||||
query: {
|
||||
id: row.targetId,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '10' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Summary/detail',
|
||||
query: {
|
||||
projectId: row.targetId,
|
||||
state: row.state,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '20' || row.targetState == '40' || row.targetState == '50') {
|
||||
router.push({
|
||||
name: 'Implementation/detail',
|
||||
query: {
|
||||
projectId: row.targetId,
|
||||
state: row.state,
|
||||
step: row.targetState,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '70' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Fund/detail',
|
||||
query: {
|
||||
id: row.targetId,
|
||||
state: row.state,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '80' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Share/detail',
|
||||
query: {
|
||||
id: row.targetId,
|
||||
state: row.state,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '90' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Phase/detail',
|
||||
query: {
|
||||
projectId: row.targetId,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -33,7 +33,7 @@
|
||||
</el-icon>
|
||||
<span>您有{{ todoList?.length || 0 }}条待办需要处理</span>
|
||||
</div>
|
||||
<div class="todo-more">
|
||||
<div class="todo-more" @click="handleTodoList(1)">
|
||||
<span>查看更多</span>
|
||||
<el-icon color="#1F63E6" size="18">
|
||||
<ArrowRight/>
|
||||
@@ -77,7 +77,7 @@
|
||||
</el-icon>
|
||||
<span>您有{{ todoList.length }}条待办需要处理</span>
|
||||
</div>
|
||||
<div class="todo-more">
|
||||
<div class="todo-more" @click="handleTodoList(2)">
|
||||
<span>查看更多</span>
|
||||
<el-icon color="#1F63E6" size="18">
|
||||
<ArrowRight/>
|
||||
@@ -295,7 +295,7 @@ import {useAuthStore} from '@/stores/userstore.js'
|
||||
import * as echarts from 'echarts'
|
||||
import {toThousands} from "@/utils/changePrice.js";
|
||||
import {ElNotification} from "element-plus";
|
||||
import {getHomeTaskInfo, getDoneTaskInfo,getHomeStatistics, getSpecialFundChart} from "@/api/home";
|
||||
import {getHomeTaskInfo, getDoneTaskInfo, getHomeStatistics, getSpecialFundChart} from "@/api/home";
|
||||
import {getResearchFundChart} from "@/api/research-fund";
|
||||
import {getArticle} from "@/api/article";
|
||||
|
||||
@@ -333,7 +333,7 @@ const taskTabList = ref([
|
||||
color: '#DCCEFA',
|
||||
textColor: '#8600C5',
|
||||
icon: 'home2.png',
|
||||
num:0,
|
||||
num: 0,
|
||||
type: 'approved'
|
||||
},
|
||||
{
|
||||
@@ -520,6 +520,17 @@ onMounted(async () => {
|
||||
helpDocList.value = await getArticleList(2)
|
||||
problemList.value = await getArticleList(3)
|
||||
})
|
||||
const handleTodoList = (type) => {
|
||||
if (type == 1) {
|
||||
router.push({
|
||||
path: '/todolist',
|
||||
})
|
||||
} else if (type == 2){
|
||||
router.push({
|
||||
path: '/donelist',
|
||||
})
|
||||
}
|
||||
}
|
||||
const handleGoToArticleDetail = (row) => {
|
||||
router.push({
|
||||
name: 'Article/detail',
|
||||
@@ -557,10 +568,10 @@ const initMoneyCharts = () => {
|
||||
const getTaskStatistics = () => {
|
||||
getHomeStatistics().then(res => {
|
||||
if (res.code === 1000) {
|
||||
taskTabList.value[0].num = res.data.stayInitiation||0
|
||||
taskTabList.value[1].num = res.data.approvedProject||0
|
||||
taskTabList.value[2].num = res.data.implementation||0
|
||||
taskTabList.value[3].num = res.data.acceptanceCheck||0
|
||||
taskTabList.value[0].num = res.data.stayInitiation || 0
|
||||
taskTabList.value[1].num = res.data.approvedProject || 0
|
||||
taskTabList.value[2].num = res.data.implementation || 0
|
||||
taskTabList.value[3].num = res.data.acceptanceCheck || 0
|
||||
} else {
|
||||
ElNotification({
|
||||
title: '提示',
|
||||
|
||||
144
src/views/todoList/index.vue
Normal file
144
src/views/todoList/index.vue
Normal file
@@ -0,0 +1,144 @@
|
||||
<template>
|
||||
<fvTable ref="tableIns" :tableConfig="tableConfig" style="margin-top: 15px"></fvTable>
|
||||
</template>
|
||||
|
||||
<script setup lang="jsx">
|
||||
const router = useRouter()
|
||||
const tableIns = ref()
|
||||
const tableConfig = reactive({
|
||||
columns: [
|
||||
{
|
||||
prop: 'index',
|
||||
type: 'index',
|
||||
label: '序号',
|
||||
align: 'center',
|
||||
width:60,
|
||||
index: index => {
|
||||
return (tableIns.value.getQuery().pageNum - 1) * tableIns.value.getQuery().pageSize + index + 1
|
||||
}
|
||||
},
|
||||
{
|
||||
prop: 'targetName',
|
||||
label: '名称',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
prop: 'initiatorName',
|
||||
label: '发起人',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
prop: 'targetState',
|
||||
label: '流程类型',
|
||||
align: 'center',
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
if (row.targetState !== null || row.targetState !== undefined) {
|
||||
return (<Tag dictType={'todo_type'} value={row.targetState}/>)
|
||||
} else {
|
||||
return '--'
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
prop: 'taskName',
|
||||
label: '当前节点',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
prop: 'submitTime',
|
||||
label: '提交时间',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
prop: 'oper',
|
||||
label: '操作',
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 150,
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
let btn = []
|
||||
btn.push({label: '查看', func: () => handleView(row), type: 'primary'})
|
||||
return (
|
||||
<div style={{width: '100%'}}>
|
||||
{
|
||||
btn.map(item => (
|
||||
<el-button
|
||||
type={item.type}
|
||||
onClick={() => item.func()}
|
||||
link
|
||||
>
|
||||
{item.label}
|
||||
</el-button>
|
||||
))
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
],
|
||||
api: '/workflow/mosr/process/task',
|
||||
})
|
||||
|
||||
const handleView = (row) => {
|
||||
if (row.targetState == '00' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Requirement/detail',
|
||||
query: {
|
||||
id: row.targetId,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '10' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Summary/detail',
|
||||
query: {
|
||||
projectId: row.targetId,
|
||||
state: row.state,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '20' || row.targetState == '40' || row.targetState == '50') {
|
||||
router.push({
|
||||
name: 'Implementation/detail',
|
||||
query: {
|
||||
projectId: row.targetId,
|
||||
state: row.state,
|
||||
step: row.targetState,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '70' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Fund/detail',
|
||||
query: {
|
||||
id: row.targetId,
|
||||
state: row.state,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '80' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Share/detail',
|
||||
query: {
|
||||
id: row.targetId,
|
||||
state: row.state,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
} else if (row.targetState == '90' && row.targetId) {
|
||||
router.push({
|
||||
name: 'Phase/detail',
|
||||
query: {
|
||||
projectId: row.targetId,
|
||||
source: 'home'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user