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