This commit is contained in:
2026-03-02 16:17:27 +08:00
5 changed files with 132 additions and 9 deletions

View File

@@ -51,16 +51,19 @@
</template>
<!-- 达成状态 -->
<template #achieveStatus="{ row }">
<!-- <span v-if="row.nodeType === NODE_TYPE.TASK">
<span :class="getTaskAchieveStyleClass(row.achieveStatus)"> </span>
{{ RESULT_ACHIEVE_STATUS.O[row.achieveStatus] }}
</span> -->
<StatusDot
v-if="row.nodeType === NODE_TYPE.TASK"
:status="getTaskAchieveStyleClass(row.achieveStatus)"
:title="RESULT_ACHIEVE_STATUS.O[row.achieveStatus]"
/>
</template>
<template #completeStatus="{ row }">
<StatusDot
v-if="row.nodeType === NODE_TYPE.PERFORMANCE"
:status="getTaskAchieveStyleClass(row.completeStatus || '0')"
:title="RESULT_ACHIEVE_STATUS.O[row.completeStatus || '0']"
/>
</template>
<!-- 审批状态 -->
<template #approvalStatus="{ row }">
<StatusDot

View File

@@ -3,7 +3,7 @@
:dirType="DIR_TYPE.TOLERANCE_ANALYSIS"
needApproval
moduleCode="TOLERANCE_APPROVAL"
:tableName="TABLE_NAME.SIMULATION_KNOWLEDGE"
:tableName="TABLE_NAME.TOLERANCE_ANALYSIS"
/>
</template>

View File

@@ -11,12 +11,14 @@ export enum TABLE_NAME {
TASK_POOL_PERFORMANCE = 'TASK_POOL_PERFORMANCE',
/** 指标库 */
PERFORMANCE_POOL = 'PERFORMANCE_POOL',
/** 知识库 */
/** 仿真标准库(原知识库 */
SIMULATION_KNOWLEDGE = 'SIMULATION_KNOWLEDGE',
/** 知识库 - 审批预览 */
/** 仿真标准库(原知识库 - 审批预览 */
SIMULATION_KNOWLEDGE_APPROVE_PREVIEW = 'SIMULATION_KNOWLEDGE_APPROVE_PREVIEW',
/** 动画库 */
/** 仿真动画库(机器人库、工业设计库) */
ANIMATION_LIBRARY = 'ANIMATION_LIBRARY',
/** 公差分析库 */
TOLERANCE_ANALYSIS = 'TOLERANCE_ANALYSIS',
/** 项目任务弹窗 */
PROJECT_TASK_MODAL = 'PROJECT_TASK_DETAIL',
/** 数据训练 */

View File

@@ -0,0 +1,108 @@
<template>
<div class="peroformance-list-page">
<loadCaseTable
needTagKey
ref="treeTableRef"
tableName="PROJECT_TASK_PERFORMANCE_LIST_TABLE"
:data="tableData"
readonly
:loading="tableLoading"
>
<template #otherLeftOptions>
<el-form label-width="60">
<el-form-item label="阶段:" class="phase-content">
<el-select
class="phase-select"
@change="updatePhaseUuid"
v-model="phaseUuid"
placeholder="阶段"
:options="phaseListOptions"
>
</el-select>
</el-form-item>
</el-form>
</template>
</loadCaseTable>
</div>
</template>
<script setup lang="ts">
import { onMounted, ref } from 'vue';
import loadCaseTable from '@/components/common/treeCaseTable/loadCaseTable.vue';
import { NODE_TYPE } from '@/utils/enum/node';
import { getChildrenNodeListApi } from '@/api/project/node';
import { getTaskTreeFun } from './projectApi';
const props = defineProps({
projectUuid: {
type: String,
default: '',
},
});
const tableData = ref<any>([]);
const tableLoading = ref(false);
const phaseUuid = ref('');
const treeTableRef = ref();
const phaseListOptions = ref<any[]>([]);
const getPhaseListApi = async () => {
const res: any = await getChildrenNodeListApi({
current: 1,
size: 999,
nodeType: NODE_TYPE.PHASE,
nodeId: props.projectUuid,
});
if (res && res.code === 200) {
phaseListOptions.value = res.data.map((item: { nodeName: string; uuid: string }) => {
return { label: item.nodeName, value: item.uuid, info: item };
});
if (phaseListOptions.value?.length) {
phaseUuid.value = phaseListOptions.value[0].value;
}
} else {
phaseListOptions.value = [];
}
};
const refreshPhaseList = async () => {
await getPhaseListApi();
await updatePhaseUuid(phaseUuid.value);
};
const updatePhaseUuid = async (value: string) => {
tableLoading.value = true;
phaseUuid.value = value;
await getTaskTreeList();
tableLoading.value = false;
};
const getTaskTreeList = async () => {
tableData.value = await getTaskTreeFun(props.projectUuid, phaseUuid.value);
setTimeout(() => {
treeTableRef.value.loadcaseTableRef.TreeTableRef.treeTableRef.setAllTreeExpand(true);
}, 200);
};
onMounted(async () => {
refreshPhaseList();
});
</script>
<style lang="scss" scoped>
.peroformance-list-page {
width: 100%;
height: 100%;
.el-form{
.el-form-item{
margin-bottom: 0;
.phase-select{
width: 120px;
}
}
}
}
</style>

View File

@@ -143,7 +143,16 @@
/>
</el-tab-pane>
<el-tab-pane label="策划记录" name="planningRecord">
<planningRecord v-if="displayedTabs.includes('planningRecord') && projectUuid" :project-info="currentProjectInfo"></planningRecord>
<planningRecord
v-if="displayedTabs.includes('planningRecord') && projectUuid"
:project-info="currentProjectInfo"
></planningRecord>
</el-tab-pane>
<el-tab-pane label="任务指标" name="proformance">
<projectTaskPerformanceList
v-if="displayedTabs.includes('proformance') && projectUuid"
:projectUuid="projectUuid"
></projectTaskPerformanceList>
</el-tab-pane>
</el-tabs>
</div>
@@ -202,6 +211,7 @@ import { enableConfigByTenant, TENANT_ENUM } from '@/tenants/tenant';
import { disposeAsyncPhase } from '@/tenants/lyric/views/project/project';
import DataOverView from '@/views/data/overview/components/index.vue';
import planningRecord from './components/planningRecord.vue';
import projectTaskPerformanceList from './components/projectTaskPerformanceList.vue';
// import { useRoute, useRouter } from 'vue-router';
// import { queryNodeListApi } from '@/api/project/node';
// import { NODE_TYPE } from '@/utils/enum/node';