merge
This commit is contained in:
@@ -14,6 +14,8 @@ export enum TASK_PROCESS_STATUS {
|
||||
CLOSED = '6',
|
||||
/** 已延期 */
|
||||
POSTPONED = '7',
|
||||
/** 已闭环 */
|
||||
CLOSED_LOOP = '8',
|
||||
}
|
||||
|
||||
export enum TASK_APPROVE_STATUS_ENUM {
|
||||
@@ -43,6 +45,7 @@ export const TASK_PROCESS_STATUS_OBJ: any = {
|
||||
[TASK_PROCESS_STATUS.PAUSED]: '已暂停',
|
||||
[TASK_PROCESS_STATUS.CLOSED]: '已关闭',
|
||||
[TASK_PROCESS_STATUS.POSTPONED]: '已延期',
|
||||
[TASK_PROCESS_STATUS.CLOSED_LOOP]: '已闭环',
|
||||
};
|
||||
|
||||
export const TASK_PROCESS_STATUS_OPTIONS = (
|
||||
|
||||
@@ -45,14 +45,20 @@ import {
|
||||
} from '@/api/system/systemData';
|
||||
|
||||
const statusColorList = [
|
||||
'rgb(200, 201, 204)',
|
||||
getThemeColor('--el-color-primary'),
|
||||
getThemeColor('--el-color-danger'),
|
||||
getThemeColor('--el-color-success'),
|
||||
getThemeColor('--el-color-warning'),
|
||||
getThemeColor('--el-color-info'),
|
||||
'rgb(200, 201, 204)', // 未开始
|
||||
getThemeColor('--el-color-primary'), // 进行中
|
||||
getThemeColor('--el-color-danger'), // 已驳回
|
||||
getThemeColor('--el-color-success'), // 已完成
|
||||
getThemeColor('--el-color-warning'), // 已暂停
|
||||
getThemeColor('--el-color-info'), // 已关闭
|
||||
'rgb(248, 152, 152)', // 已延期
|
||||
'rgb(179, 225, 157)', // 已闭环
|
||||
];
|
||||
const performanceColorList = [
|
||||
'rgb(200, 201, 204)',
|
||||
getThemeColor('--el-color-success'),
|
||||
getThemeColor('--el-color-primary'),
|
||||
];
|
||||
const performanceColorList = ['rgb(200, 201, 204)', getThemeColor('--el-color-success')];
|
||||
// 难度系数颜色列表
|
||||
const difficultyCountColorList = [
|
||||
'#67c23a',
|
||||
|
||||
@@ -13,9 +13,10 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import commonFilterChart from '@/components/common/echartCard/commonFilterChart.vue';
|
||||
import { TASK_PROCESS_STATUS_OBJ } from '@/utils/enum/task';
|
||||
import { getAllUserTaskCompleteStatisticsApi } from '@/api/project/node';
|
||||
import { useDict } from '@/utils/useDict';
|
||||
|
||||
const { TASK_ACHIEVE_STATUS } = useDict('TASK_ACHIEVE_STATUS');
|
||||
const props = defineProps({
|
||||
statusColorList: {
|
||||
type: Array,
|
||||
@@ -28,15 +29,18 @@ const getProjectGroupTaskCompleteStatistics = async (formData: any) => {
|
||||
const xData: any = [];
|
||||
let legendData: any = [];
|
||||
let seriesData: any = [];
|
||||
let colors: any = [];
|
||||
const res: any = await getAllUserTaskCompleteStatisticsApi({
|
||||
tag1List: formData.tag1 ? formData.tag1.split(',') : [],
|
||||
});
|
||||
if (res.code === 200) {
|
||||
legendData =
|
||||
res.data?.allExeStatus?.map((item: any) => {
|
||||
return TASK_PROCESS_STATUS_OBJ[item];
|
||||
return TASK_ACHIEVE_STATUS.value.O[item];
|
||||
}) || [];
|
||||
|
||||
colors = res.data?.allExeStatus.map((item: any) => {
|
||||
return props.statusColorList[Number(item) - 1];
|
||||
});
|
||||
seriesData = legendData?.map((item: any) => {
|
||||
return {
|
||||
name: item,
|
||||
@@ -62,8 +66,8 @@ const getProjectGroupTaskCompleteStatistics = async (formData: any) => {
|
||||
const seriesItem = seriesData.find((item: any) => item.name === statusName);
|
||||
if (seriesItem) {
|
||||
// 获取状态对应的 key
|
||||
const statusKey = Object.keys(TASK_PROCESS_STATUS_OBJ).find(
|
||||
(key) => TASK_PROCESS_STATUS_OBJ[key] === statusName
|
||||
const statusKey = Object.keys(TASK_ACHIEVE_STATUS.value.O).find(
|
||||
(key) => TASK_ACHIEVE_STATUS.value.O[key] === statusName
|
||||
);
|
||||
if (statusKey) {
|
||||
// 如果 statusCount 中有这个状态,使用其值,否则使用 0
|
||||
@@ -78,13 +82,15 @@ const getProjectGroupTaskCompleteStatistics = async (formData: any) => {
|
||||
xData,
|
||||
seriesData,
|
||||
legendData,
|
||||
colors,
|
||||
};
|
||||
};
|
||||
const initProjectTaskCompleteChart = async (formData: any) => {
|
||||
const { xData, seriesData, legendData } = await getProjectGroupTaskCompleteStatistics(formData);
|
||||
const { xData, seriesData, legendData, colors } =
|
||||
await getProjectGroupTaskCompleteStatistics(formData);
|
||||
|
||||
chartOption.value = {
|
||||
color: props.statusColorList,
|
||||
color: colors,
|
||||
legend: {
|
||||
data: legendData,
|
||||
},
|
||||
|
||||
@@ -16,12 +16,13 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import commonFilterChart from '@/components/common/echartCard/commonFilterChart.vue';
|
||||
import { TASK_PROCESS_STATUS_OBJ } from '@/utils/enum/task';
|
||||
import {
|
||||
getCommonCompleteStatisticsApi,
|
||||
getTaskCompleteStatisticsByDisciplineApi,
|
||||
} from '@/api/project/node';
|
||||
import { useDict } from '@/utils/useDict';
|
||||
|
||||
const { TASK_ACHIEVE_STATUS } = useDict('TASK_ACHIEVE_STATUS');
|
||||
const props = defineProps({
|
||||
// x轴 机台、学科discipline
|
||||
resultTagType: {
|
||||
@@ -65,15 +66,17 @@ const initTaskCompleteChart = async (formData: any) => {
|
||||
|
||||
titles =
|
||||
res.data?.allExeStatus?.map((item: any) => {
|
||||
return TASK_PROCESS_STATUS_OBJ[item];
|
||||
return TASK_ACHIEVE_STATUS.value.O[item] || item;
|
||||
}) || [];
|
||||
|
||||
const colors = res.data?.allExeStatus.map((item: any) => {
|
||||
return props.statusColorList[Number(item) - 1];
|
||||
});
|
||||
const names = res.data?.allExeStatus || [];
|
||||
|
||||
for (let i = 0; i < names.length; i++) {
|
||||
const str = names[i];
|
||||
const obj: any = {
|
||||
name: TASK_PROCESS_STATUS_OBJ[str],
|
||||
name: TASK_ACHIEVE_STATUS.value.O[str] || str,
|
||||
type: 'bar',
|
||||
emphasis: {
|
||||
focus: 'series',
|
||||
@@ -88,7 +91,7 @@ const initTaskCompleteChart = async (formData: any) => {
|
||||
seriesData.push(obj);
|
||||
}
|
||||
chartOption.value = {
|
||||
color: props.statusColorList,
|
||||
color: colors,
|
||||
legend: {
|
||||
data: titles,
|
||||
},
|
||||
|
||||
@@ -12,9 +12,10 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import commonFilterChart from '@/components/common/echartCard/commonFilterChart.vue';
|
||||
import { TASK_PROCESS_STATUS_OBJ } from '@/utils/enum/task';
|
||||
import { getUserGroupTaskCompleteStatisticsApi } from '@/api/project/node';
|
||||
import { useDict } from '@/utils/useDict';
|
||||
|
||||
const { TASK_ACHIEVE_STATUS } = useDict('TASK_ACHIEVE_STATUS');
|
||||
const props = defineProps({
|
||||
statusColorList: {
|
||||
type: Array,
|
||||
@@ -25,14 +26,18 @@ const getUserGroupTaskCompleteStatistics = async (formData: any) => {
|
||||
const xData: any = [];
|
||||
let legendData: any = [];
|
||||
let seriesData: any = [];
|
||||
let colors: any = [];
|
||||
const res: any = await getUserGroupTaskCompleteStatisticsApi({
|
||||
...formData,
|
||||
});
|
||||
if (res.code === 200) {
|
||||
legendData =
|
||||
res.data?.allExeStatus?.map((item: any) => {
|
||||
return TASK_PROCESS_STATUS_OBJ[item];
|
||||
return TASK_ACHIEVE_STATUS.value.O[item];
|
||||
}) || [];
|
||||
colors = res.data?.allExeStatus.map((item: any) => {
|
||||
return props.statusColorList[Number(item) - 1];
|
||||
});
|
||||
seriesData = legendData?.map((item: any) => {
|
||||
return {
|
||||
name: item,
|
||||
@@ -58,8 +63,8 @@ const getUserGroupTaskCompleteStatistics = async (formData: any) => {
|
||||
const seriesItem = seriesData.find((item: any) => item.name === statusName);
|
||||
if (seriesItem) {
|
||||
// 获取状态对应的 key
|
||||
const statusKey = Object.keys(TASK_PROCESS_STATUS_OBJ).find(
|
||||
(key) => TASK_PROCESS_STATUS_OBJ[key] === statusName
|
||||
const statusKey = Object.keys(TASK_ACHIEVE_STATUS.value.O).find(
|
||||
(key) => TASK_ACHIEVE_STATUS.value.O[key] === statusName
|
||||
);
|
||||
if (statusKey) {
|
||||
// 如果 statusCount 中有这个状态,使用其值,否则使用 0
|
||||
@@ -74,14 +79,16 @@ const getUserGroupTaskCompleteStatistics = async (formData: any) => {
|
||||
xData,
|
||||
seriesData,
|
||||
legendData,
|
||||
colors,
|
||||
};
|
||||
};
|
||||
// 初始化用户组项目统计
|
||||
const chartOption = ref();
|
||||
const initUserTaskCompleteChart = async (formData: any) => {
|
||||
const { xData, seriesData, legendData } = await getUserGroupTaskCompleteStatistics(formData);
|
||||
const { xData, seriesData, legendData, colors } =
|
||||
await getUserGroupTaskCompleteStatistics(formData);
|
||||
chartOption.value = {
|
||||
color: props.statusColorList,
|
||||
color: colors,
|
||||
legend: {
|
||||
data: legendData,
|
||||
},
|
||||
|
||||
@@ -89,24 +89,24 @@ import {
|
||||
} from '@/api/project/node';
|
||||
import { getTaskAchieveStatisticsApi } from '@/api/project/task';
|
||||
import { getThemeColor } from '@/utils/theme';
|
||||
import {
|
||||
TASK_PROCESS_STATUS_OBJ,
|
||||
TASK_PROCESS_STATUS,
|
||||
TASK_CALCULATE_STATUS_OBJ,
|
||||
} from '@/utils/enum/task';
|
||||
import { TASK_CALCULATE_STATUS_OBJ } from '@/utils/enum/task';
|
||||
import emitter from '@/utils/eventBus';
|
||||
// import { useDict } from '@/utils/useDict';
|
||||
import { useDict } from '@/utils/useDict';
|
||||
// const { DISCIPLINE_TYPE } = useDict('DISCIPLINE_TYPE');
|
||||
|
||||
const { TASK_ACHIEVE_STATUS } = useDict('TASK_ACHIEVE_STATUS');
|
||||
// 进度状态颜色列表
|
||||
const statusColorList = [
|
||||
'rgb(200, 201, 204)',
|
||||
getThemeColor('--el-color-primary'),
|
||||
getThemeColor('--el-color-danger'),
|
||||
getThemeColor('--el-color-success'),
|
||||
getThemeColor('--el-color-warning'),
|
||||
getThemeColor('--el-color-info'),
|
||||
'rgb(200, 201, 204)', // 未开始
|
||||
getThemeColor('--el-color-primary'), // 进行中
|
||||
getThemeColor('--el-color-danger'), // 已驳回
|
||||
getThemeColor('--el-color-success'), // 已完成
|
||||
getThemeColor('--el-color-warning'), // 已暂停
|
||||
getThemeColor('--el-color-info'), // 已关闭
|
||||
'rgb(248, 152, 152)', // 已延期
|
||||
'rgb(179, 225, 157)', // 已闭环
|
||||
];
|
||||
|
||||
const achievementColorList = [
|
||||
getThemeColor('--el-color-info'), // 未分析
|
||||
getThemeColor('--el-color-success'), // 合格
|
||||
@@ -180,11 +180,13 @@ const getCommonOptionFun = async () => {
|
||||
let xData: any = [];
|
||||
const seriesData: any = [];
|
||||
let legendData: any = [];
|
||||
let colors: any = [];
|
||||
if (currentProjectId.value === '') {
|
||||
return {
|
||||
xData,
|
||||
seriesData,
|
||||
legendData,
|
||||
colors,
|
||||
};
|
||||
} else {
|
||||
// dzhtodo 感觉这里的学科入参有问题
|
||||
@@ -201,36 +203,22 @@ const getCommonOptionFun = async () => {
|
||||
});
|
||||
|
||||
legendData = res.data.allExeStatus.map((item: any) => {
|
||||
return TASK_PROCESS_STATUS_OBJ[item];
|
||||
return TASK_ACHIEVE_STATUS.value.O[item];
|
||||
});
|
||||
colors = res.data?.allExeStatus.map((item: any) => {
|
||||
return statusColorList[Number(item) - 1];
|
||||
});
|
||||
|
||||
const names = res.data.allExeStatus;
|
||||
|
||||
for (let i = 0; i < names.length; i++) {
|
||||
const str = names[i];
|
||||
const obj: any = {
|
||||
name: TASK_PROCESS_STATUS_OBJ[str],
|
||||
name: TASK_ACHIEVE_STATUS.value.O[str],
|
||||
type: 'bar',
|
||||
stack: 'total', // 堆叠效果
|
||||
emphasis: {
|
||||
focus: 'series',
|
||||
},
|
||||
label: {
|
||||
show: false, // 暂不展示,效果很一般
|
||||
position:
|
||||
TASK_PROCESS_STATUS_OBJ[str] ===
|
||||
TASK_PROCESS_STATUS_OBJ[TASK_PROCESS_STATUS.COMPLETED]
|
||||
? 'right'
|
||||
: '',
|
||||
formatter: (params: any) => {
|
||||
return params.value
|
||||
? TASK_PROCESS_STATUS_OBJ[str] ===
|
||||
TASK_PROCESS_STATUS_OBJ[TASK_PROCESS_STATUS.COMPLETED]
|
||||
? `———${params.value}`
|
||||
: params.value
|
||||
: '';
|
||||
},
|
||||
},
|
||||
data: [],
|
||||
};
|
||||
|
||||
@@ -245,16 +233,17 @@ const getCommonOptionFun = async () => {
|
||||
xData,
|
||||
seriesData,
|
||||
legendData,
|
||||
colors,
|
||||
};
|
||||
}
|
||||
};
|
||||
const queryProjectTaskProgress = async () => {
|
||||
const { xData, seriesData, legendData } = await getCommonOptionFun();
|
||||
const { xData, seriesData, legendData, colors } = await getCommonOptionFun();
|
||||
if (!ProjectTaskProgressChartRef.value || !ProjectTaskProgressChartRef.value.commonChartRef)
|
||||
return;
|
||||
ProjectTaskProgressChartRef.value.commonChartRef.disposeEchartsByKey('chart-progress');
|
||||
ProjectTaskProgressChartRef.value.commonChartRef.option = {
|
||||
color: statusColorList,
|
||||
color: colors,
|
||||
title: {
|
||||
show: false,
|
||||
},
|
||||
|
||||
@@ -130,14 +130,16 @@ watchEffect(() => {
|
||||
|
||||
// 进度状态颜色列表:已驳回、未开始、进行中、已完成、已暂停、已关闭、已延期
|
||||
const statusColorList = [
|
||||
getThemeColor('--el-color-danger'),
|
||||
'rgb(200, 201, 204)',
|
||||
getThemeColor('--el-color-primary'),
|
||||
getThemeColor('--el-color-success'),
|
||||
getThemeColor('--el-color-warning'),
|
||||
'rgb(222, 223, 224)',
|
||||
'rgb(250, 182, 182)',
|
||||
'rgb(200, 201, 204)', // 未开始
|
||||
getThemeColor('--el-color-primary'), // 进行中
|
||||
getThemeColor('--el-color-danger'), // 已驳回
|
||||
getThemeColor('--el-color-success'), // 已完成
|
||||
getThemeColor('--el-color-warning'), // 已暂停
|
||||
getThemeColor('--el-color-info'), // 已关闭
|
||||
'rgb(248, 152, 152)', // 已延期
|
||||
'rgb(179, 225, 157)', // 已闭环
|
||||
];
|
||||
|
||||
// 完成情况颜色列表:未分析、不合格、合格
|
||||
const completionStatusColorList = [
|
||||
getThemeColor('--el-color-info'),
|
||||
|
||||
@@ -144,7 +144,7 @@ dayjs.extend(isoWeek);
|
||||
|
||||
const Gantt: any = gantt;
|
||||
const ganttEvents = ref<any>([]);
|
||||
const colorList: string[] = ['#ffffff', '#d9ecff', '#c6e2ff', '#c6e2ff', '#79bbff', '#409eff']; // 格子颜色
|
||||
const colorList: string[] = ['#ffffff', '#d9ecff', '#c6e2ff', '#a1cefc', '#79bbff', '#409eff']; // 格子颜色
|
||||
const taskOriginData = ref<any>([]); // 所有用户的任务数据
|
||||
const loading = ref<boolean>(false);
|
||||
const visible = ref(false);
|
||||
|
||||
Reference in New Issue
Block a user