diff --git a/src/api/project-demand/summary/index.js b/src/api/project-demand/summary/index.js index b680084..bb082e8 100644 --- a/src/api/project-demand/summary/index.js +++ b/src/api/project-demand/summary/index.js @@ -25,6 +25,16 @@ export const getRequirementName = (requirementName) => { method: "get" }); }; +//需求汇总-项目名称关键词匹配 +export const getProjectName = (projectName) => { + return request({ + url: `workflow/mosr/requirement/collect`, + method: "get", + params:{ + projectName:projectName + } + }); +}; //获取需求上报 流程信息 export const getProcessInfo = (specialFund) => { return request({ diff --git a/src/components/DetailComponent/ProjectApply.vue b/src/components/DetailComponent/ProjectApply.vue index 68049e2..0820bcb 100644 --- a/src/components/DetailComponent/ProjectApply.vue +++ b/src/components/DetailComponent/ProjectApply.vue @@ -10,8 +10,8 @@ - - + + @@ -140,19 +140,20 @@ @cancelOrClear="optionalChargeLeaderPickerCancel"/> - - - - {{ - localFormData.preProcess && localFormData.preProcess?.length > 0 ? '更改' : sessionParams.preProcess && sessionParams.preProcess?.length > 0 ? '更改' : '请选择' - }} - -
- {{ item.requestName }} - -
+ + + + + + + + + + + + + + @@ -287,6 +288,10 @@ const props = defineProps({ type: Object, default: {} }, + basicData: { + type: Object, + default: {} + }, formData: { type: Object, default: {} @@ -563,9 +568,15 @@ const choosePreProcess = () => { requestName: item.requestName, baseUrl: item.baseUrl } - preProcessArray.push(preProcessObj) + if(props.mode === 'resubmit'){ + localFormData.value.preProcess.push(preProcessObj) + }else{ + preProcessArray.push(preProcessObj) + } }) - localFormData.value.preProcess = preProcessArray + if(props.mode !== 'resubmit'){ + localFormData.value.preProcess = preProcessArray + } showPreTable.value = false localStorage.setItem('preProcess', JSON.stringify(preProcessArray)) } @@ -830,8 +841,7 @@ const init = async () => { let data = res.data deploymentId.value = data.deploymentId deploymentData.value = data - console.log('data,',data) - preProcessRequired.value = data.deploymentName === '重大项目立项' || data.deploymentName === '重大项目验收'; + // preProcessRequired.value = data.deploymentName === '重大项目立项' || data.deploymentName === '重大项目验收'; processStore.setDesign(data) processStore.runningList.value = data.runningList; processStore.endList.value = data.endList; @@ -867,7 +877,6 @@ watchEffect(() => { // if (props.formData.projectChargePerson != null) { // localFormData.value.projectChargePerson = props.formData.projectChargePerson.id // } - if (localStorage.getItem('preProcess')) { let param = JSON.parse(localStorage.getItem('preProcess')) localFormData.value.preProcess = param diff --git a/src/components/SelectPreProcess.vue b/src/components/SelectPreProcess.vue index 7f7883e..60b5d3d 100644 --- a/src/components/SelectPreProcess.vue +++ b/src/components/SelectPreProcess.vue @@ -28,7 +28,8 @@ - + @@ -70,11 +71,13 @@ const props = defineProps({ }) const loading = ref(false) //暂存数据 +const originalProcess = ref([]) const currentList = ref([]) const showPreTable = ref(false) const selectRows = ref([]) const preProcessList = ref([]) const total = ref(0) +const preProcessTable = ref() const localFormData = ref({ projectPersonIds: [], projectChargePerson: null, @@ -118,8 +121,33 @@ const handleReset = () => { const handleSelect = async (selection) => { selectRows.value = selection } +const checkSelectable=(row)=>{ + const detailProcessStr = localStorage.getItem('detailProcess'); + let preProcessArray = [] + if (detailProcessStr) { + try { + preProcessArray = JSON.parse(detailProcessStr) + } catch (e) { + preProcessArray=[] + } + if (preProcessArray&&preProcessArray.length > 0) { + for (let i = 0; i < preProcessArray.length; i++) { + return preProcessArray[i].requestId !== row.requestId; + } + }else{ + return true + } + } +} const handleShowPreTable = () => { showPreTable.value = true + nextTick(() => { + localFormData.value.preProcess?.forEach((item) => { + if (preProcessTable.value) { + preProcessTable.value.toggleRowSelection(item, true) + } + }) + }) getPreProcessList() } const handleCancel = () => { @@ -129,17 +157,30 @@ const handleCancel = () => { const choosePreProcess = () => { let preProcessObj = {} let preProcessArray = [] + const detailProcessStr = localStorage.getItem('detailProcess'); + try { + originalProcess.value = JSON.parse(detailProcessStr) + } catch (e) { + originalProcess.value=[] + } selectRows.value.forEach((item) => { - preProcessObj = { - requestId: item.requestId, - requestName: item.requestName, - baseUrl: item.baseUrl + const exists = originalProcess.value?.some(dp => dp.requestId === item.requestId) + if (!exists) { + preProcessObj = { + requestId: item.requestId, + requestName: item.requestName, + baseUrl: item.baseUrl + } + preProcessArray.push(preProcessObj) } - preProcessArray.push(preProcessObj) }) - localFormData.value.preProcess = preProcessArray - showPreTable.value = false + if(props.formData.mode === 'view'||props.formData.mode === 'resubmit'){ + localFormData.value.preProcess = [...originalProcess.value,...preProcessArray] + }else{ + localFormData.value.preProcess = preProcessArray + } localStorage.setItem('preProcess', JSON.stringify(preProcessArray)) + showPreTable.value = false } const getPreProcessList = () => { @@ -154,13 +195,6 @@ const getPreProcessList = () => { searchArray.push(item) } }) - // res.data.forEach((item) => { - // localFormData.value.preProcess.forEach((item1) => { - // if (item.requestId == item1.requestId) { - // preProcessTable.value.toggleRowSelection(item) - // } - // }) - // }) total.value = searchArray.length currentList.value = searchArray preProcessList.value = currentList.value.slice(0, 10) @@ -177,6 +211,7 @@ const handleCurrentChange = (val) => { pageInfo.pageNum = val; preProcessList.value = currentList.value.slice((val - 1) * pageInfo.pageSize, val * pageInfo.pageSize) }; + watchEffect(() => { return Object.keys(props.formData).length && (localFormData.value = props.formData) }) diff --git a/src/layout/tagsview/index.vue b/src/layout/tagsview/index.vue index d192170..c1cd911 100644 --- a/src/layout/tagsview/index.vue +++ b/src/layout/tagsview/index.vue @@ -1,6 +1,6 @@ @@ -115,6 +116,7 @@ const getAllInfo = async (state) => { if (code === 1000) { data.formData.preProcess = data.formData.preProcess ? JSON.parse(data.formData.preProcess) : undefined detailData.value = data + localStorage.setItem('detailProcess', JSON.stringify(data.formData.preProcess)) mode.value = data.formData.mode processStore.setDesign(data) processStore.runningList.value = data.runningList;