Compare commits

...

2 Commits

Author SHA1 Message Date
7e93167f7d merge 2025-12-18 11:47:29 +08:00
e2d6770ac9 update:任务总览编辑优化 2025-12-18 11:45:20 +08:00
3 changed files with 59 additions and 33 deletions

View File

@@ -16,17 +16,11 @@ const service = axios.create({
service.interceptors.request.use(
(config) => {
config.headers['company'] = 'carsafe';
// config.headers['jobNumber'] = $wujie?.props?.USER_ID || localStorage.getItem('USER_ID') || '';
// config.headers['token'] = $wujie?.props?.TOKEN || localStorage.getItem('TOKEN') || '';
// config.headers['userId'] = $wujie?.props?.USER_ID || localStorage.getItem('USER_ID') || '';
// config.headers['tenantId'] =
// $wujie?.props?.TENANT_ID || localStorage.getItem('TENANT_ID') || '';
config.headers['jobNumber'] = '1979078323595476993';
config.headers['token'] =
'BtoiqAL9KrNGuTEPnEs9tJ4s2q7NG3o1ZBqQje_n4mxw785zQ-YMU-IFdadrf4XZP8AiQTo2RY_RbZGmSxJH54Yf7KOCjGvtBosqcgFvWbScFOpcPX33KPp7nV7gYaGz';
config.headers['userId'] = '1979078323595476993';
config.headers['tenantId'] = '1979091834410176514';
config.headers['jobNumber'] = $wujie?.props?.USER_ID || localStorage.getItem('USER_ID') || '';
config.headers['token'] = $wujie?.props?.TOKEN || localStorage.getItem('TOKEN') || '';
config.headers['userId'] = $wujie?.props?.USER_ID || localStorage.getItem('USER_ID') || '';
config.headers['tenantId'] =
$wujie?.props?.TENANT_ID || localStorage.getItem('TENANT_ID') || '';
return config;
},
(error) => {

View File

@@ -75,7 +75,7 @@ const props = withDefaults(defineProps<Props>(), {
nodeType: '',
modalTableNameList: () => [
TABLE_NAME.TASK_POOL_CATEGORY,
TABLE_NAME.TASK_POOL_TASK,
TABLE_NAME.PROJECT_TASK_MODAL,
TABLE_NAME.TASK_POOL_PERFORMANCE,
],
detail: null,

View File

@@ -102,7 +102,14 @@
</el-dropdown-menu>
</template>
</el-dropdown>
<el-button :icon="Edit" type="primary" @click="editFun">编辑</el-button>
<el-button
:icon="Edit"
type="primary"
:disabled="chosenData.length !== 1"
@click="editFun"
>
编辑
</el-button>
<el-button
:icon="Delete"
type="danger"
@@ -112,7 +119,7 @@
删除
</el-button>
</template>
<el-button :icon="Refresh" @click="reloadFun">刷新</el-button>
<el-button :icon="Refresh" @click="reloadNodeFun">刷新</el-button>
<span class="info-switch">
<el-switch
v-model="infoShow"
@@ -140,15 +147,15 @@
<Document v-else-if="row.relatedResourceUuidOwnType === NODE_TYPE.TASK" />
<Folder v-else />
</el-icon>
<el-link type="primary" class="name" @dblclick="goDetailFun(row)">
<span class="name link" @dblclick="goDetailFun(row)">
{{ row.originalName }}
</el-link>
</span>
</template>
<template v-else>
<el-icon :size="16">
<Document />
</el-icon>
<span>{{ row.originalName }}</span>
<span class="name">{{ row.originalName }}</span>
</template>
</div>
</template>
@@ -355,9 +362,11 @@ const getAllTemplateFun = () => {
const addDiaFun = (type: string) => {
nodeType.value = type;
editId.value = '';
// 项目
if (type === NODE_TYPE.PROJECT) {
showProjectInfoDialog.value = true;
}
// 节点
if (type === NODE_TYPE.PHASE) {
if (!currentData.value || currentData.value.relatedResourceUuidOwnType !== NODE_TYPE.PROJECT) {
ElMessage.warning('请在项目下创建阶段');
@@ -366,6 +375,7 @@ const addDiaFun = (type: string) => {
editId.value = currentData.value.relatedResourceUuid;
showNodeInfoDialog.value = true;
}
// 分类(机台,工位,学科等)
if (type === NODE_TYPE.CATEGORY) {
if (
!currentData.value ||
@@ -379,29 +389,33 @@ const addDiaFun = (type: string) => {
}
modalVisible.value = true;
}
// 任务
if (type === NODE_TYPE.TASK) {
modalVisible.value = true;
}
};
const editFun = () => {
if (!currentData.value) {
ElMessage.warning('请选择一个目录');
const data = chosenData.value[0];
if (!data) {
return;
}
nodeType.value = currentData.value.relatedResourceUuidOwnType;
if (currentData.value.relatedResourceUuidOwnType === NODE_TYPE.PROJECT) {
editId.value = currentData.value.relatedResourceUuid;
nodeType.value = data.relatedResourceUuidOwnType;
// 项目
if (data.relatedResourceUuidOwnType === NODE_TYPE.PROJECT) {
editId.value = data.relatedResourceUuid;
showProjectInfoDialog.value = true;
}
if (currentData.value.relatedResourceUuidOwnType === NODE_TYPE.PHASE) {
editId.value = currentData.value.relatedParentUuid;
// 节点
if (data.relatedResourceUuidOwnType === NODE_TYPE.PHASE) {
editId.value = currentData.value.relatedResourceUuid;
showNodeInfoDialog.value = true;
}
if (isCategoryNodeType(currentData.value.relatedResourceUuidOwnType)) {
editId.value = currentData.value.relatedParentUuid;
// 分类(机台,工位,学科等)
if (isCategoryNodeType(data.relatedResourceUuidOwnType)) {
editId.value = data.relatedResourceUuid;
const params = {
relatedResourceUuid: currentData.value.relatedResourceUuid,
relatedResourceUuid: data.relatedResourceUuid,
};
getNodeDetailForDataApi(params).then((res: any) => {
if (res.code === 200) {
@@ -410,10 +424,11 @@ const editFun = () => {
modalVisible.value = true;
});
}
if ([NODE_TYPE.TASK].includes(currentData.value.relatedResourceUuidOwnType)) {
editId.value = currentData.value.relatedParentUuid;
// 任务
if ([NODE_TYPE.TASK].includes(data.relatedResourceUuidOwnType)) {
editId.value = data.relatedResourceUuid;
const params = {
relatedResourceUuid: currentData.value.relatedResourceUuid,
relatedResourceUuid: data.relatedResourceUuid,
};
getTaskDetailApi(params).then((res: any) => {
if (res.code === 200) {
@@ -511,6 +526,7 @@ const searchFileFun = (data: any) => {
const resetSearchFileFun = () => {
BaseTableRef.value?.setDataFun([]);
isSearching.value = false;
reloadNodeFun();
};
const editNodeFun = (data: any) => {
@@ -597,9 +613,15 @@ const goDetailFun = (data: any) => {
};
const choseNodeFun = (mergeData: any) => {
mergeDataList.value = mergeData.mergeSameNameChildren || [];
mergeDataName.value = mergeDataList.value[0].totalName;
const data = mergeDataList.value[0];
chosenData.value = [];
let data: any = {};
if (mergeData.mergeSameNameChildren) {
mergeDataList.value = mergeData.mergeSameNameChildren;
mergeDataName.value = mergeDataList.value[0].totalName;
data = mergeDataList.value[0];
} else {
data = mergeData;
}
setCurrentDataFun(data, mergeData.fileIds);
};
@@ -665,6 +687,16 @@ const reloadNodeFun = () => {
align-items: center;
.name {
padding-left: 4px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
&.link {
color: var(--el-color-primary);
&:hover {
text-decoration: underline;
cursor: pointer;
}
}
}
.el-icon {
color: var(--el-color-primary);