diff --git a/src/components/common/treeCaseTable/loadCaseTable.vue b/src/components/common/treeCaseTable/loadCaseTable.vue
index 2ae1046..9ad4217 100644
--- a/src/components/common/treeCaseTable/loadCaseTable.vue
+++ b/src/components/common/treeCaseTable/loadCaseTable.vue
@@ -195,6 +195,7 @@ import { ElMessage } from 'element-plus';
import { generateFakeId } from '@/utils/node';
import { useI18n } from 'vue-i18n';
import { TABLE_NAME } from '@/utils/enum/tableName';
+import { disposeTaskMembers } from '@/utils/task';
const { t } = useI18n();
const loadcaseTableRef = ref();
@@ -328,8 +329,10 @@ const editRowFun = (row: any) => {
modalDetail.value = {
...row,
planTime: [row.beginTime, row.endTime],
- eMemberListArr: row.eMemberList,
- pMemberListArr: row.pMemberList,
+ ...disposeTaskMembers('setListToArr', row),
+ // eMemberListArr: row.eMemberList,
+ // pMemberListArr: row.pMemberList,
+ // payAttentionMemberListArr: row.payAttentionMemberList,
};
modalVisible.value = true;
};
@@ -357,7 +360,7 @@ const onNodeDetailConfirmFun = (formData: any) => {
const { visibleData } = getVxeRef()?.getTableData();
const checkRowData = getVxeRef()?.getCheckboxRecords(true);
if (operationType.value === 'add') {
- const addRow = {
+ let addRow = {
parentId: checkRowData[0]?.fakeId,
fakeId: generateFakeId(),
discipline: checkRowData[0]?.discipline,
@@ -371,8 +374,10 @@ const onNodeDetailConfirmFun = (formData: any) => {
if (addRow.nodeType === NODE_TYPE.TASK) {
addRow.exeStatus = TASK_PROCESS_STATUS.NO_STARTED;
addRow.achieveStatus = TASK_CALCULATE_STATUS.NO_CALCULATE;
- addRow.eMemberList = addRow.eMemberListArr;
- addRow.pMemberList = addRow.pMemberListArr;
+ // addRow.eMemberList = addRow.eMemberListArr;
+ // addRow.pMemberList = addRow.pMemberListArr;
+ // addRow.payAttentionMemberList = addRow.payAttentionMemberListArr;
+ addRow = { ...addRow, ...disposeTaskMembers('setArrToList', addRow) };
}
// 给新增节点赋值tagKeyMapList
// const tagKeyList = disposeTagKey(addRow, checkRowData[0]?.tagKeyList || [], tagKeyMapList.value);
@@ -421,8 +426,10 @@ const onNodeDetailConfirmFun = (formData: any) => {
const row = visibleData.find((item: any) => item.fakeId === formData.fakeId);
const rowInfo = {
...formData,
- eMemberList: formData.eMemberListArr,
- pMemberList: formData.pMemberListArr,
+ // eMemberList: formData.eMemberListArr,
+ // pMemberList: formData.pMemberListArr,
+ // payAttentionMemberList: formData.payAttentionMemberListArr,
+ ...disposeTaskMembers('setArrToList', formData),
beginTime: formData.planTime ? formData.planTime[0] : '',
endTime: formData.planTime ? formData.planTime[1] : '',
};
diff --git a/src/components/common/treeCaseTable/nodeDetailDialog.vue b/src/components/common/treeCaseTable/nodeDetailDialog.vue
index ffa30f1..9ae38cf 100644
--- a/src/components/common/treeCaseTable/nodeDetailDialog.vue
+++ b/src/components/common/treeCaseTable/nodeDetailDialog.vue
@@ -55,7 +55,7 @@ import { ref, computed, nextTick, watch, onMounted } from 'vue';
import Dialog from '@/components/common/dialog/index.vue';
import TableForm from '@/components/common/table/tableForm.vue';
import { getTagKeyMap, NODE_TYPE } from '@/utils/enum/node';
-import { getMemberListIds } from '@/utils/task';
+import { disposeTaskMembers } from '@/utils/task';
import { disposeTagKey } from '@/views/task/projectDetail/components/project';
import { isCategoryType, isCategoryNodeType, validateCategoryLevel } from '@/utils/node';
import flowTemplateSelect from './flowTemplateSelect.vue';
@@ -154,11 +154,18 @@ const onFormChangeFun = (data: any) => {
formData.value.nodeCode = null;
formData.value.englishName = null;
}
- if (data.key === 'eMemberList') {
- formData.value.eMemberListArr = data.val;
- }
- if (data.key === 'pMemberList') {
- formData.value.pMemberListArr = data.val;
+ // if (data.key === 'eMemberList') {
+ // formData.value.eMemberListArr = data.val;
+ // }
+ // if (data.key === 'pMemberList') {
+ // formData.value.pMemberListArr = data.val;
+ // }
+ // if (data.key === 'payAttentionMemberList') {
+ // formData.value.payAttentionMemberListArr = data.val;
+ // }
+ const memberKeys = disposeTaskMembers('tableFormChangeFun', data);
+ for (const key in memberKeys) {
+ formData.value[key] = memberKeys[key];
}
};
const onCancelFun = () => {
@@ -183,14 +190,19 @@ const onConfirmFun = async () => {
submitData.beginTime = submitData.planTime[0];
submitData.endTime = submitData.planTime[1];
}
- submitData.pMemberIds = '';
- if (submitData.pMemberList?.length > 0) {
- submitData.pMemberIds = submitData.pMemberList;
- }
- submitData.eMemberIds = '';
- if (submitData.eMemberList?.length > 0) {
- submitData.eMemberIds = submitData.eMemberList;
- }
+ // submitData.pMemberIds = '';
+ // if (submitData.pMemberList?.length > 0) {
+ // submitData.pMemberIds = submitData.pMemberList;
+ // }
+ // submitData.eMemberIds = '';
+ // if (submitData.eMemberList?.length > 0) {
+ // submitData.eMemberIds = submitData.eMemberList;
+ // }
+ // submitData.payAttentionMemberIds = '';
+ // if (submitData.payAttentionMemberList?.length > 0) {
+ // submitData.payAttentionMemberIds = submitData.payAttentionMemberList;
+ // }
+ disposeTaskMembers('setListToIdsNoTranslate', submitData);
emits('confirm', submitData);
}
};
@@ -247,8 +259,10 @@ const prepareFromProps = () => {
formData.value = detail
? {
...detail,
- eMemberList: getMemberListIds(detail.eMemberList),
- pMemberList: getMemberListIds(detail.pMemberList),
+ ...disposeTaskMembers('getIds', detail),
+ // eMemberList: getMemberListIds(detail.eMemberList),
+ // pMemberList: getMemberListIds(detail.pMemberList),
+ // payAttentionMemberList: getMemberListIds(detail.payAttentionMemberList),
}
: {};
}
diff --git a/src/components/common/treeCaseTable/treeTable.vue b/src/components/common/treeCaseTable/treeTable.vue
index 6292ade..3cd7cbc 100644
--- a/src/components/common/treeCaseTable/treeTable.vue
+++ b/src/components/common/treeCaseTable/treeTable.vue
@@ -153,6 +153,30 @@
v-model="row.eMemberIds"
>
+
+
+
+
+ {{ disposeMemberList(row['payAttentionMemberList'], 'payAttentionMemberList') }}
+
+
+
+
+ changeUserFun(row, data, 'payAttentionMemberList', 'payAttentionMemberList')
+ "
+ :multiple="true"
+ v-model="row.payAttentionMemberList"
+ >
+
+
+
+
+
+ {{ row.listReleaseTime }}
+
+
+
+
+
+
+ {{ row.stationUpgradeTime }}
+
+
+
+
+
+
+ {{ row.structureRefinementCompletionTime }}
+
+
{
formData.beginTime = formData.planTime[0];
formData.endTime = formData.planTime[1];
}
- formData.pMemberIds = '';
- if (formData.pMemberList?.length > 0) {
- formData.pMemberIds = formData.pMemberList;
- }
- formData.eMemberIds = '';
- if (formData.eMemberList?.length > 0) {
- formData.eMemberIds = formData.eMemberList;
- }
-
+ // formData.pMemberIds = '';
+ // if (formData.pMemberList?.length > 0) {
+ // formData.pMemberIds = formData.pMemberList;
+ // }
+ // formData.eMemberIds = '';
+ // if (formData.eMemberList?.length > 0) {
+ // formData.eMemberIds = formData.eMemberList;
+ // }
+ // formData.payAttentionMemberIds = '';
+ // if (formData.payAttentionMemberList?.length > 0) {
+ // formData.payAttentionMemberIds = formData.payAttentionMemberList;
+ // }
+ disposeTaskMembers('setListToIdsNoTranslate', formData);
return formData;
} else {
return null;
diff --git a/src/tenants/tenant.ts b/src/tenants/tenant.ts
index b004989..f06c6e9 100644
--- a/src/tenants/tenant.ts
+++ b/src/tenants/tenant.ts
@@ -20,6 +20,11 @@ export enum TENANT_ENUM {
*/
export const CURRENT_TENANT = env.VITE_API_TENANT_NAME || TENANT_ENUM.BASE;
+/**
+ * 当前租户是否有这个配置
+ * @param tenants
+ * @returns
+ */
export const enableConfigByTenant = (tenants: string[]) => {
return tenants.includes(CURRENT_TENANT);
};
diff --git a/src/utils/node.ts b/src/utils/node.ts
index 75ffed9..afaf9b1 100644
--- a/src/utils/node.ts
+++ b/src/utils/node.ts
@@ -7,7 +7,7 @@ import {
poolNodeExtraPropPickMap,
} from '@/utils/enum/node';
import type { TreeNode } from '@/utils/enum/node';
-import { getMemberListIds } from './task';
+import { disposeTaskMembers } from './task';
import { CommonStore } from '@/stores/common';
const commonStore = CommonStore();
@@ -231,14 +231,19 @@ export const transformTreeToPoolNodes = (tree: TreeNode[]) => {
export const translateLoadcaseTree = (list: any[]) => {
const arr = list.map((item) => {
item.fakeId = item.uuid;
- item.pMemberIds = '';
- if (item.pMemberList?.length > 0) {
- item.pMemberIds = getMemberListIds(item.pMemberList);
- }
- item.eMemberIds = '';
- if (item.eMemberList?.length > 0) {
- item.eMemberIds = getMemberListIds(item.eMemberList);
- }
+ // item.pMemberIds = '';
+ // if (item.pMemberList?.length > 0) {
+ // item.pMemberIds = getMemberListIds(item.pMemberList);
+ // }
+ // item.eMemberIds = '';
+ // if (item.eMemberList?.length > 0) {
+ // item.eMemberIds = getMemberListIds(item.eMemberList);
+ // }
+ // item.payAttentionMemberIds = '';
+ // if (item.payAttentionMemberList?.length > 0) {
+ // item.payAttentionMemberIds = getMemberListIds(item.payAttentionMemberList);
+ // }
+ disposeTaskMembers('setListToIds', item);
if (Array.isArray(item.children)) {
item.children = translateLoadcaseTree(item.children);
}
diff --git a/src/utils/task.ts b/src/utils/task.ts
index a3c1794..fa5039b 100644
--- a/src/utils/task.ts
+++ b/src/utils/task.ts
@@ -72,3 +72,86 @@ export const getTaskAchieveStyleClass = (status: number) => {
return 'dot dot-no-calculate';
}
};
+
+/**
+ * 专门处理任务的人员,防止后续任务再加人
+ * @param disposeKey
+ * @param row
+ * @returns
+ */
+export const disposeTaskMembers = (disposeKey: string, row: any) => {
+ if (disposeKey === 'tableFormChangeFun') {
+ const obj: any = {};
+ if (row.key === 'eMemberIds' || row.key === 'eMemberList') {
+ obj.eMemberListArr = row.val;
+ }
+ if (row.key === 'pMemberIds' || row.key === 'pMemberList') {
+ obj.pMemberListArr = row.val;
+ }
+ if (row.key === 'payAttentionMemberIds' || row.key === 'payAttentionMemberList') {
+ obj.payAttentionMemberListArr = row.val;
+ }
+ return obj;
+ }
+ if (disposeKey === 'getListAndIds') {
+ return {
+ pMemberList: row.pMemberListArr,
+ pMemberIds: getMemberListIds(row.pMemberListArr),
+ eMemberList: row.eMemberListArr,
+ eMemberIds: getMemberListIds(row.eMemberListArr),
+ // EP的关注人
+ payAttentionMemberList: row.payAttentionMemberListArr,
+ // EP的关注人
+ payAttentionMemberIds: getMemberListIds(row.payAttentionMemberListArr),
+ };
+ }
+ if (disposeKey === 'getIds') {
+ return {
+ eMemberList: getMemberListIds(row.eMemberList),
+ pMemberList: getMemberListIds(row.pMemberList),
+ payAttentionMemberList: getMemberListIds(row.payAttentionMemberList),
+ };
+ }
+ if (disposeKey === 'setListToArr') {
+ return {
+ eMemberListArr: row.eMemberList,
+ pMemberListArr: row.pMemberList,
+ payAttentionMemberListArr: row.payAttentionMemberList,
+ };
+ }
+ if (disposeKey === 'setArrToList') {
+ return {
+ eMemberList: row.eMemberListArr,
+ pMemberList: row.pMemberListArr,
+ payAttentionMemberList: row.payAttentionMemberListArr,
+ };
+ }
+ if (disposeKey === 'setListToIds') {
+ row.pMemberIds = '';
+ if (row.pMemberList?.length > 0) {
+ row.pMemberIds = getMemberListIds(row.pMemberList);
+ }
+ row.eMemberIds = '';
+ if (row.eMemberList?.length > 0) {
+ row.eMemberIds = getMemberListIds(row.eMemberList);
+ }
+ row.payAttentionMemberIds = '';
+ if (row.payAttentionMemberList?.length > 0) {
+ row.payAttentionMemberIds = getMemberListIds(row.payAttentionMemberList);
+ }
+ }
+ if (disposeKey === 'setListToIdsNoTranslate') {
+ row.pMemberIds = '';
+ if (row.pMemberList?.length > 0) {
+ row.pMemberIds = row.pMemberList;
+ }
+ row.eMemberIds = '';
+ if (row.eMemberList?.length > 0) {
+ row.eMemberIds = row.eMemberList;
+ }
+ row.payAttentionMemberIds = '';
+ if (row.payAttentionMemberList?.length > 0) {
+ row.payAttentionMemberIds = row.payAttentionMemberList;
+ }
+ }
+};
diff --git a/src/views/task/projectList/components/taskDialog.vue b/src/views/task/projectList/components/taskDialog.vue
index ac33418..a6169d2 100644
--- a/src/views/task/projectList/components/taskDialog.vue
+++ b/src/views/task/projectList/components/taskDialog.vue
@@ -296,12 +296,12 @@ import { NODE_TYPE, getTagKeyMap, tagSortList } from '@/utils/enum/node';
import nodeLevel2Select from '@/components/project/nodeLevel2Select.vue';
import { getTaskTreeFun } from '../../projectDetail/components/projectApi';
import { disposeTagKey } from '../../projectDetail/components/project';
-import { getTagMapList } from '@/utils/task';
+import { disposeTaskMembers, getTagMapList } from '@/utils/task';
import { modifyNodeTaskPerformanceApi } from '@/api/project/node';
import { TASK_CALCULATE_STATUS, TASK_PROCESS_STATUS } from '@/utils/enum/task';
import dayjs from 'dayjs';
import loadCaseTable from '@/components/common/treeCaseTable/loadCaseTable.vue';
-import { getMemberListIds } from '@/utils/task';
+// import { getMemberListIds } from '@/utils/task';
import { getUserTenantId } from '@/utils/user';
import ProjectSelect from '@/components/common/projectSelect/index.vue';
import { TABLE_NAME } from '@/utils/enum/tableName';
@@ -750,8 +750,10 @@ const addOrEditTaskFun = async () => {
// beginTime: item.planTime?.length > 0 ? item.planTime[0] : '',
// endTime: item.planTime?.length > 0 ? item.planTime[1] : '',
tenantId: getUserTenantId(),
- eMemberList: getMemberListIds(item.eMemberList),
- pMemberList: getMemberListIds(item.pMemberList),
+ ...disposeTaskMembers('getIds', item),
+ // eMemberList: getMemberListIds(item.eMemberList),
+ // pMemberList: getMemberListIds(item.pMemberList),
+ // payAttentionMemberList: getMemberListIds(item.payAttentionMemberList),
analyseSoftware: Array.isArray(item.analyseSoftware)
? item.analyseSoftware?.join()
: item.analyseSoftware,
@@ -764,8 +766,10 @@ const addOrEditTaskFun = async () => {
// beginTime: item.planTime?.length > 0 ? item.planTime[0] : '',
// endTime: item.planTime?.length > 0 ? item.planTime[1] : '',
tenantId: getUserTenantId(),
- eMemberList: getMemberListIds(item.eMemberList),
- pMemberList: getMemberListIds(item.pMemberList),
+ ...disposeTaskMembers('getIds', item),
+ // eMemberList: getMemberListIds(item.eMemberList),
+ // pMemberList: getMemberListIds(item.pMemberList),
+ // payAttentionMemberList: getMemberListIds(item.payAttentionMemberList),
analyseSoftware: Array.isArray(item.analyseSoftware)
? item.analyseSoftware?.join()
: item.analyseSoftware,
@@ -796,7 +800,7 @@ const updateTreeDataApi = async (insertList: any[], deleteList: any[], updateLis
return { ...item, children: [] };
})
);
- const addList = disposeTreeTagKey(insertList);
+ disposeTreeTagKey(insertList);
if (insertList.length === 0 && updateList.length === 0 && deleteNodeList.length === 0) {
closeFun();
@@ -1089,13 +1093,20 @@ const tableFormRef = ref();
const batchUpdateTaskConfirmFun = async () => {
const updateData = tableFormRef.value.getFormDataFun();
const selectTasks = getRightVxeRef().getCheckboxRecords();
+ debugger;
for (let index = 0; index < selectTasks.length; index++) {
+ // console.log('getListAndIds', disposeTaskMembers('getListAndIds', updateData));
const newObj = {
...selectTasks[index],
- pMemberList: updateData.pMemberListArr,
- pMemberIds: getMemberListIds(updateData.pMemberListArr),
- eMemberList: updateData.eMemberListArr,
- eMemberIds: getMemberListIds(updateData.eMemberListArr),
+ ...disposeTaskMembers('getListAndIds', updateData),
+ // pMemberList: updateData.pMemberListArr,
+ // pMemberIds: getMemberListIds(updateData.pMemberListArr),
+ // eMemberList: updateData.eMemberListArr,
+ // eMemberIds: getMemberListIds(updateData.eMemberListArr),
+ // // EP的关注人
+ // payAttentionMemberList: updateData.payAttentionMemberListArr,
+ // // EP的关注人
+ // payAttentionMemberIds: getMemberListIds(updateData.payAttentionMemberListArr),
beginTime: updateData.planTime ? updateData.planTime[0] : '',
endTime: updateData.planTime ? updateData.planTime[1] : '',
};
@@ -1109,11 +1120,20 @@ const closeBatchUpdateDialogFun = () => {
};
const tableFormChangeFun = (data: any) => {
- if (data.key === 'eMemberIds') {
- data.data.eMemberListArr = data.val;
- }
- if (data.key === 'pMemberIds') {
- data.data.pMemberListArr = data.val;
+ // if (data.key === 'eMemberIds') {
+ // data.data.eMemberListArr = data.val;
+ // }
+ // if (data.key === 'pMemberIds') {
+ // data.data.pMemberListArr = data.val;
+ // }
+ // if (data.key === 'payAttentionMemberIds') {
+ // data.data.payAttentionMemberListArr = data.val;
+ // }
+ // data.data = { ...data.data, ...disposeTaskMembers('tableFormChangeFun', data) };
+ // disposeTaskMembers('tableFormChangeFun', data);
+ const memberKeys = disposeTaskMembers('tableFormChangeFun', data);
+ for (const key in memberKeys) {
+ data.data[key] = memberKeys[key];
}
};
diff --git a/src/views/task/projectOverview/index.vue b/src/views/task/projectOverview/index.vue
index 6de5a67..cc4f3c5 100644
--- a/src/views/task/projectOverview/index.vue
+++ b/src/views/task/projectOverview/index.vue
@@ -155,6 +155,9 @@
{{ disposeMemberList(row, 'eMemberList') }}
+
+ {{ disposeMemberList(row, 'payAttentionMemberList') }}
+