feat(project-management): 优化前置流程选择功能
- 在项目申请详情页面添加基本数据传递 - 实现前置流程的更改和选择功能 - 优化前置流程数据的存储和展示 - 添加对不可重复选择的前置流程的校验
This commit is contained in:
@@ -28,7 +28,8 @@
|
||||
</el-form>
|
||||
<el-table :data="preProcessList" v-loading="loading"
|
||||
@select="handleSelect" @select-all="handleSelect" row-key="requestId" ref="preProcessTable">
|
||||
<el-table-column type="selection" width="55" :reserve-selection="true"/>
|
||||
<el-table-column type="selection" width="55" :reserve-selection="true"
|
||||
:selectable="checkSelectable"/>
|
||||
<el-table-column prop="requestId" label="请求id"></el-table-column>
|
||||
<el-table-column prop="requestName" label="请求名称"></el-table-column>
|
||||
<el-table-column prop="lastOperatorName" label="最后操作人名称"></el-table-column>
|
||||
@@ -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)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user