项目承接主体功能开发
This commit is contained in:
@@ -41,3 +41,7 @@ export const exportDemandApi = (params: any, filename: string) => {
|
||||
export const getDemandDetailApi = (params: any) => {
|
||||
return get(`${PREFIX}demand/detail`, params);
|
||||
};
|
||||
|
||||
export const queryDemandFilesApi = (params: any) => {
|
||||
return post(`${PREFIX}demand/queryDemandFiles`, params);
|
||||
};
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, nextTick, computed } from 'vue';
|
||||
import { ref, onMounted, nextTick, computed, provide } from 'vue';
|
||||
import { Plus } from '@element-plus/icons-vue';
|
||||
import TreeCaseTable from '@/components/common/treeCaseTable/treeTable.vue';
|
||||
import { getTagKeyMap, NODE_TYPE } from '@/utils/enum/node';
|
||||
@@ -260,6 +260,11 @@ const props = withDefaults(defineProps<Props>(), {
|
||||
showNodeCompleteNum: false,
|
||||
});
|
||||
|
||||
const checkMethod = () => {
|
||||
return false;
|
||||
};
|
||||
provide('checkMethod', checkMethod);
|
||||
|
||||
const emits = defineEmits(['checkboxChange']);
|
||||
|
||||
const tagKeyMap = getTagKeyMap();
|
||||
@@ -356,7 +361,7 @@ const onNodeDetailConfirmFun = (formData: any) => {
|
||||
...formData,
|
||||
depth: checkRowData[0]?.depth + 1,
|
||||
beginTime: formData.planTime ? formData.planTime[0] : '',
|
||||
endTime: formData.planTime ? formData.endTime[1] : '',
|
||||
endTime: formData.planTime ? formData.planTime[1] : '',
|
||||
// eMemberList: getMemberListByIds(formData.eMemberList)
|
||||
};
|
||||
|
||||
|
||||
@@ -96,6 +96,15 @@ const addOrEditProject = async () => {
|
||||
if (await tableFormRef.value.validateFun()) {
|
||||
loadingInterface.value = true;
|
||||
const projectForm = tableFormRef.value.getFormDataFun();
|
||||
// EP的项目主体字段 放到拓展字段
|
||||
projectForm.extras = projectForm.extras.map((item: any) => {
|
||||
if (item.propertyName === 'projectUndertaker') {
|
||||
item.propertyValue = editRowInfo.value.projectUndertaker;
|
||||
}
|
||||
return {
|
||||
...item,
|
||||
};
|
||||
});
|
||||
|
||||
let result;
|
||||
if (projectForm.planTime) {
|
||||
@@ -177,6 +186,7 @@ const editNode = async (projectForm: any) => {
|
||||
};
|
||||
|
||||
const closeFun = () => {
|
||||
loadingInterface.value = false;
|
||||
emits('update:modelValue', false);
|
||||
};
|
||||
|
||||
@@ -197,6 +207,8 @@ const epProjectSelectFun = (row: any) => {
|
||||
nodeCode: row.projectNum,
|
||||
nodeName: row.projectName,
|
||||
projectId: row.id,
|
||||
// EP的项目主体字段 放到拓展字段
|
||||
projectUndertaker: row.projectUndertaker,
|
||||
};
|
||||
// tableFormRef.value.setFormDataFun({
|
||||
// ...tableFormRef.value.getFormDataFun(),
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
:loading="loadingInterface"
|
||||
:diaTitle="isCreateDialog ? '创建需求' : '编辑需求'"
|
||||
:width="800"
|
||||
:height="550"
|
||||
:height="650"
|
||||
@close="closeFun"
|
||||
show-footer
|
||||
>
|
||||
@@ -85,6 +85,7 @@ import { enableConfigByTenant, TENANT_ENUM } from '@/tenants/tenant';
|
||||
import { syncDemandList } from '../taskPage';
|
||||
import { getChildrenNodeListApi } from '@/api/project/node';
|
||||
import type { Options } from '@/types';
|
||||
import { listDeptApi } from '@/api/system/departMent';
|
||||
|
||||
const env = import.meta.env;
|
||||
const PREFIX = env.VITE_API_PREFIX_PROJECT;
|
||||
@@ -159,6 +160,12 @@ const editFormInfo = ref<any>({});
|
||||
const visibleDialog = async (isCreate: boolean, row?: any) => {
|
||||
formVisible.value = true;
|
||||
isCreateDialog.value = isCreate;
|
||||
loadingInterface.value = true;
|
||||
if (isCreate) {
|
||||
nextTick(() => {
|
||||
tableFormRef.value.resetFun();
|
||||
});
|
||||
}
|
||||
if (!isCreateDialog.value) {
|
||||
const res: any = await dataQueryDirApi({ uuid: row.uuid, current: 1, size: 99 });
|
||||
row.attachments =
|
||||
@@ -229,6 +236,7 @@ const visibleDialog = async (isCreate: boolean, row?: any) => {
|
||||
// });
|
||||
}
|
||||
emits('visibleDialog', { isCreate, row });
|
||||
loadingInterface.value = false;
|
||||
};
|
||||
|
||||
const deleteDemandFun = async (uuid: number) => {
|
||||
@@ -358,8 +366,9 @@ const oldAttachments = ref<any[]>([]);
|
||||
|
||||
const changeFun = async (val: any, type: string) => {
|
||||
const formData = tableFormRef.value.getFormDataFun();
|
||||
editFormInfo.value = { ...formData };
|
||||
// editFormInfo.value = { ...formData };
|
||||
if (val.key === 'projectId') {
|
||||
console.log('val', val);
|
||||
let nodeType = '';
|
||||
let nextKey = '';
|
||||
let nodeId = '';
|
||||
@@ -367,14 +376,28 @@ const changeFun = async (val: any, type: string) => {
|
||||
nodeType = NODE_TYPE.PHASE;
|
||||
nextKey = 'phaseId';
|
||||
nodeId = val.data.projectId;
|
||||
let pMemberId = '';
|
||||
for (let index = 0; index < val.data.extras.length; index++) {
|
||||
if (val.val.extras[index]?.propertyName === 'projectUndertaker') {
|
||||
const deptList = await listDeptApi({ current: 1, size: 999 });
|
||||
const dept = deptList.data.data.find((item: any) => {
|
||||
return item.deptName === val.val.extras[index].propertyValue;
|
||||
});
|
||||
if (dept) {
|
||||
pMemberId = dept.userId;
|
||||
}
|
||||
}
|
||||
}
|
||||
formData.pMemberList = pMemberId;
|
||||
}
|
||||
if (nodeId) {
|
||||
const optionList = await getPhaseList(nodeType, nodeId);
|
||||
tableFormRef.value.setOptionsFun(nextKey, optionList);
|
||||
if (nextKey === 'phaseId' && optionList.length > 0) {
|
||||
formData.phaseId = optionList[0].value;
|
||||
formData.workspace = (await getWorkSpaceList(formData.phaseId)).value;
|
||||
formData.workspaceName = (await getWorkSpaceList(formData.phaseId)).label;
|
||||
const workspaceInfo = await getWorkSpaceList(formData.phaseId);
|
||||
formData.workspace = workspaceInfo.value;
|
||||
formData.workspaceName = workspaceInfo.label;
|
||||
formData.extras = setWorkSpaceValue(
|
||||
formData.extras,
|
||||
formData.workspace,
|
||||
@@ -398,9 +421,9 @@ const changeFun = async (val: any, type: string) => {
|
||||
|
||||
if (val.key === 'phaseId') {
|
||||
if (formData.phaseId) {
|
||||
// formData.workspace = await getWorkSpaceList(formData.phaseId);
|
||||
formData.workspace = (await getWorkSpaceList(formData.phaseId)).value;
|
||||
formData.workspaceName = (await getWorkSpaceList(formData.phaseId)).label;
|
||||
const workspaceInfo = await getWorkSpaceList(formData.phaseId);
|
||||
formData.workspace = workspaceInfo.value;
|
||||
formData.workspaceName = workspaceInfo.label;
|
||||
formData.extras = setWorkSpaceValue(
|
||||
formData.extras,
|
||||
formData.workspace,
|
||||
@@ -420,9 +443,8 @@ const changeFun = async (val: any, type: string) => {
|
||||
if (val.key === 'workspace') {
|
||||
if (formData.workspace) {
|
||||
console.log('val', val);
|
||||
formData.workspace = val.val;
|
||||
// formData.workspaceName = val.data.workspaceName;
|
||||
formData.workspaceName = new Date().getTime();
|
||||
formData.workspace = val.val.value;
|
||||
formData.workspaceName = val.val.label;
|
||||
formData.extras = setWorkSpaceValue(
|
||||
formData.extras,
|
||||
formData.workspace,
|
||||
|
||||
Reference in New Issue
Block a user