This commit is contained in:
2026-04-02 19:34:22 +08:00
7 changed files with 133 additions and 102 deletions

View File

@@ -22,7 +22,7 @@ export enum MessageCategory {
TASK = 2,
MILESTONE = 3,
ORGANIZATION = 4,
SPDM = 99, // SPDM CODE
SPDM = 99, // SPDM CODE
}
export enum MessageRead {
@@ -176,7 +176,7 @@ export const deleteMessageList = (id: string) => {
};
// 用户消息 /msg/message/list/user/page
export const getMessageUserPage = (params: { size: number; current: number; msgCategory?: string; isRead?: string, userId?: string; }) => {
export const getMessageUserPage = (params: { size: number; current: number; msgCategory?: string; isRead?: string; userId?: string }) => {
return request.get('/msg/message/list/user/page', { params });
};
// 修改消息状态 /msg/message/list/item/isRead
@@ -244,20 +244,25 @@ export const taskAdjust = async (item: any, readType: number = MessageRead.READ)
},
});
}
} else if (item.msgCategory === MessageCategory.SPDM) { // SPDM CODE
if (item.msgTitle === '任务通知') {
router.push({
path: '/spdm/task/execute'
});
} else if (item.msgTitle === '数据通知') {
router.push({
path: '/spdm/system/storage'
});
} else if (item.msgTitle === '作业通知') {
router.push({
path: '/spdm/task/execution'
});
} else if (params?.taskId) {
} else if (item.msgCategory === MessageCategory.SPDM) {
// SPDM CODE
if (item.msgTitle === '任务通知') {
router.push({
path: '/spdm/task/execute',
});
} else if (item.msgTitle === '数据通知') {
router.push({
path: '/spdm/system/storage',
});
} else if (item.msgTitle === '项目通知') {
router.push({
path: '/spdm/project/allProject',
});
} else if (item.msgTitle === '作业通知') {
router.push({
path: '/spdm/task/execution',
});
} else if (params?.taskId) {
queryTask(params.taskId, false).then((res) => {
if (item.msgTitle === '审批通知') {
localStorage.setItem('SPDM_MSG_TASK_TYPE', 'flow');

View File

@@ -2283,18 +2283,19 @@
"components.task-compare-chart.251031-1": "Make statistics on the completion of all tasks",
"components.task-trend-chart.251031-0": "Task trend chart",
"components.task-trend-chart.251031-1": "",
"spdm.message.task": "Task",
"spdm.message.data": "Data",
"spdm.message.work": "Work",
"spdm.message.approve": "Approve",
"spdm.taskMessage.title": "Task Message",
"spdm.taskMessage.des": "Task Message List",
"spdm.taskList.title": "Task List",
"spdm.taskList.des": "List of tasks I perform",
"spdm.todoCalendar.title": "Todo Calendar",
"spdm.todoCalendar.des": "To-do task calendar",
"spdm.tapnav.task.focus": "My Focus",
"spdm.tapnav.task.todayTmrTasks": "Today & Tomorrow",
"spdm.tapnav.task.inProgress": "In Progress",
"spdm.tapnav.task.postponed": "Overdue Tasks"
}
"spdm.message.task": "Task",
"spdm.message.data": "Data",
"spdm.message.work": "Work",
"spdm.message.approve": "Approve",
"spdm.message.project": "Project",
"spdm.taskMessage.title": "Task Message",
"spdm.taskMessage.des": "Task Message List",
"spdm.taskList.title": "Task List",
"spdm.taskList.des": "List of tasks I perform",
"spdm.todoCalendar.title": "Todo Calendar",
"spdm.todoCalendar.des": "To-do task calendar",
"spdm.tapnav.task.focus": "My Focus",
"spdm.tapnav.task.todayTmrTasks": "Today & Tomorrow",
"spdm.tapnav.task.inProgress": "In Progress",
"spdm.tapnav.task.postponed": "Overdue Tasks"
}

View File

@@ -2287,6 +2287,7 @@
"spdm.message.data": "数据",
"spdm.message.work": "作业",
"spdm.message.approve": "审批",
"spdm.message.project": "项目",
"spdm.taskMessage.title": "任务消息",
"spdm.taskMessage.des": "任务消息列表",
"spdm.taskList.title": "任务列表",

View File

@@ -286,7 +286,12 @@ const onHandleCommandClick = (path: string) => {
}
};
const gotoApprove = () => {
router.push('/task/pending');
// 如果当前地址已经在待办任务页,则刷新页面
if (window.location.href.includes('/task/pending')) {
mittBus.emit('updatePendingTask');
} else {
router.push('/task/pending');
}
};
// 菜单搜索点击
const onSearchClick = () => {

View File

@@ -140,9 +140,14 @@ const changeSwitch = async (id: string) => {
const getCurrentWeekDates = () => {
const now = new Date();
const dayOfWeek = now.getDay(); // 获取今天是星期几0表示星期日1表示星期一以此类推
const diff = now.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1); // 计算本周第一天是星期几
const startDate = new Date(now.setDate(diff));
const endDate = new Date(now.setDate(diff + 6));
// 计算本周第一天的日期(以周一为起始)
const diff = now.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1);
const startDate = new Date(now.getFullYear(), now.getMonth(), diff);
// 计算本周最后一天的日期(以周日为结束)
const endDate = new Date(now.getFullYear(), now.getMonth(), diff + 6);
return {
startDate: parseDate(startDate.getTime(), '{y}-{m}-{d}'),
endDate: parseDate(endDate.getTime(), '{y}-{m}-{d}'),

View File

@@ -23,7 +23,7 @@
</el-form-item>
</el-form>
</el-row> -->
<!--
<!--
<el-row>
<div class="mb8" style="width: 100%">
<right-toolbar
@@ -52,7 +52,9 @@
<el-table-column :label="$t('task.taskTime')" prop="taskCreateTime" />
<el-table-column fixed="right" :label="$t('common.action')" width="200">
<template #default="scope">
<el-button type="primary" size="small" link icon="VideoPlay" @click="deal(scope.row)"> {{ $t('task.pendingFlowTask.09123344-1') }} </el-button>
<el-button type="primary" size="small" link icon="VideoPlay" @click="deal(scope.row)">
{{ $t('task.pendingFlowTask.09123344-1') }}
</el-button>
</template>
</el-table-column>
</el-table>
@@ -65,31 +67,31 @@
<h3>{{ currentData?.processName }}</h3>
</template>
<template #default>
<!-- SPDM CODE -->
<div class="spdm-approve-preview">
<div v-show="processRreview" class="spdm-content">
<SpdmView :processId="processInstanceId" @load="previewLoadFun" />
</div>
<div class="spdm-default">
<el-card class="box-card">
<form-render
@addLayoutOneItem="addLayoutOneItem"
@deleteLayoutOneItem="deleteLayoutOneItem"
ref="formRenderRef"
:form-list="currentOpenFlowForm"
></form-render>
</el-card>
<flow-node-format
:disableSelect="true"
:formData="formValue"
:task-id="currentData.taskId"
:processInstanceId="currentData.processInstanceId"
:flow-id="currentData.flowId"
ref="flowNodeFormatRef"
class="mt-4"
/>
</div>
</div>
<!-- SPDM CODE -->
<div class="spdm-approve-preview">
<div v-show="processRreview" class="spdm-content">
<SpdmView :processId="processInstanceId" @load="previewLoadFun" />
</div>
<div class="spdm-default">
<el-card class="box-card">
<form-render
@addLayoutOneItem="addLayoutOneItem"
@deleteLayoutOneItem="deleteLayoutOneItem"
ref="formRenderRef"
:form-list="currentOpenFlowForm"
></form-render>
</el-card>
<flow-node-format
:disableSelect="true"
:formData="formValue"
:task-id="currentData.taskId"
:processInstanceId="currentData.processInstanceId"
:flow-id="currentData.flowId"
ref="flowNodeFormatRef"
class="mt-4"
/>
</div>
</div>
</template>
<template #footer>
<div style="flex: auto">
@@ -113,9 +115,10 @@ import AgreeHandle from './handler/agree.vue';
import RefuseHandle from './handler/refuse.vue';
import FlowNodeFormat from '/@/views/flow/form/tools/FlowNodeFormatData.vue';
import other from '/@/utils/other';
import {queryMineTask, queryTask} from '/@/api/flow/task';
import {BasicTableProps, useTable} from '/@/hooks/table';
import { queryMineTask, queryTask } from '/@/api/flow/task';
import { BasicTableProps, useTable } from '/@/hooks/table';
import SpdmView from '/@/spdm/views/preview.vue'; // SPDM CODE
import mittBus from '/@/utils/mitt';
const rightDrawerVisible = ref(false);
const showSearch = ref(true);
@@ -123,7 +126,7 @@ const loading = ref(false);
const queryRef = ref();
const processInstanceId = ref('');
const processRreview = ref(false);
const processRreviewWidth = ref(0)
const processRreviewWidth = ref(0);
const currentData = ref();
const state: BasicTableProps = reactive<BasicTableProps>({
@@ -134,8 +137,18 @@ const state: BasicTableProps = reactive<BasicTableProps>({
},
});
const {tableStyle, getDataList, currentChangeHandle, sortChangeHandle, sizeChangeHandle} = useTable(state);
const { tableStyle, getDataList, currentChangeHandle, sortChangeHandle, sizeChangeHandle } = useTable(state);
onMounted(() => {
mittBus.on('updatePendingTask', () => {
getDataList();
});
});
// 页面卸载时
onUnmounted(() => {
mittBus.off('updatePendingTask');
});
/**
* 点击开始处理
* @param row
@@ -197,7 +210,7 @@ const refuseTask = () => {
};
onMounted(() => {
getDataList();
// SPDM CODE
// SPDM CODE
const paramsData = JSON.parse(localStorage.getItem('SPDM_MSG_TASK_PARAMS') || '{}');
if (paramsData.taskId) {
const params = {
@@ -210,7 +223,7 @@ onMounted(() => {
deal(params);
localStorage.removeItem('SPDM_MSG_TASK_TYPE');
localStorage.removeItem('SPDM_MSG_TASK_PARAMS');
}
}
});
const formValue = computed(() => {
@@ -225,5 +238,5 @@ const formValue = computed(() => {
const previewLoadFun = (width: any) => {
processRreview.value = true;
processRreviewWidth.value = width;
}
};
</script>

View File

@@ -8,11 +8,12 @@
<!-- <el-tab-pane :label="$t('components.tabDanger.09112132-6')" name="2"> </el-tab-pane>
<el-tab-pane :label="$t('project.project_list.09111107-0')" name="1"> </el-tab-pane> -->
<el-tab-pane :label="$t('message.records.0910440-4')" name="4"> </el-tab-pane>
<!-- SPDM CODE -->
<el-tab-pane :label="$t('spdm.message.task')" name="任务通知"></el-tab-pane>
<el-tab-pane :label="$t('spdm.message.data')" name="数据通知"></el-tab-pane>
<el-tab-pane :label="$t('spdm.message.work')" name="作业通知"></el-tab-pane>
<el-tab-pane :label="$t('spdm.message.approve')" name="审批通知"></el-tab-pane>
<!-- SPDM CODE -->
<el-tab-pane :label="$t('spdm.message.task')" name="任务通知"></el-tab-pane>
<el-tab-pane :label="$t('spdm.message.data')" name="数据通知"></el-tab-pane>
<el-tab-pane :label="$t('spdm.message.work')" name="作业通知"></el-tab-pane>
<el-tab-pane :label="$t('spdm.message.approve')" name="审批通知"></el-tab-pane>
<el-tab-pane :label="$t('spdm.message.project')" name="项目通知"></el-tab-pane>
</el-tabs>
<el-empty v-if="messageList.length === 0" class="mt-20" :image-size="100" :description="$t('FormTable.index.7634616-2')" />
<ul v-else v-infinite-scroll="allLoadMore" class="infinite-list">
@@ -25,8 +26,8 @@
</div>
</template>
<script lang="ts" name="MessageConfig" setup>
import {getMessageUserPage, editMessageUserIsRead, isReadAll, MessageUserVo, taskAdjust, MessageRead} from '/@/api/message';
import {useMsg} from '/@/stores/msg';
import { getMessageUserPage, editMessageUserIsRead, isReadAll, MessageUserVo, taskAdjust, MessageRead } from '/@/api/message';
import { useMsg } from '/@/stores/msg';
import RecordItem from './components/RecordItem.vue';
import { useRoute } from 'vue-router';
import Cookies from 'js-cookie';
@@ -41,13 +42,13 @@ const spdmMsgType = ref<boolean>(false); // SPDM CODE
const route = useRoute();
onMounted(() => {
// SPDM CODE
const type = localStorage.getItem('SPDM_JUMP_TYPE');
if (type ==='task') {
activeName.value = '任务通知';
spdmMsgType.value = true
localStorage.removeItem('SPDM_JUMP_TYPE');
}
// SPDM CODE
const type = localStorage.getItem('SPDM_JUMP_TYPE');
if (type === 'task') {
activeName.value = '任务通知';
spdmMsgType.value = true;
localStorage.removeItem('SPDM_JUMP_TYPE');
}
getUserMessage();
});
@@ -55,12 +56,12 @@ const handleClick = (tab: any, event: any) => {
messageList.value = [];
current.value = 1;
isEnd.value = false;
// SPDM CODE
if (['任务通知', '数据通知', '作业通知', '审批通知'].includes(activeName.value)) {
spdmMsgType.value = true;
} else {
spdmMsgType.value = false;
}
// SPDM CODE
if (['任务通知', '数据通知', '作业通知', '审批通知', '项目通知'].includes(activeName.value)) {
spdmMsgType.value = true;
} else {
spdmMsgType.value = false;
}
getUserMessage();
};
@@ -70,18 +71,18 @@ const getUserMessage = async () => {
}
// 防止重复请求
isEnd.value = true;
const params: any = {
size: pageSize.value,
current: current.value,
msgCategory: activeName.value,
isRead: '',
userId: Cookies.get('cid_user_id'),
};
// SPDM CODE
if (spdmMsgType.value) {
params.msgCategory = '99';
params.msgTitle = activeName.value;
}
const params: any = {
size: pageSize.value,
current: current.value,
msgCategory: activeName.value,
isRead: '',
userId: Cookies.get('cid_user_id'),
};
// SPDM CODE
if (spdmMsgType.value) {
params.msgCategory = '99';
params.msgTitle = activeName.value;
}
const res = await getMessageUserPage(params);
messageList.value.push(...res.data.records);
if (res.data.total === messageList.value.length) {
@@ -95,7 +96,7 @@ const getUserMessage = async () => {
const viewMessage = (item: MessageUserVo, readType: number, index: number) => {
// 未读
if (item.isRead === MessageRead.UNREAD) {
editMessageUserIsRead({id: item.id, isRead: readType});
editMessageUserIsRead({ id: item.id, isRead: readType });
useMsg().setUnreadNum(-1);
messageList.value[index].isRead = readType;
}