Merge pull request 'master' (#1004) from master into prod
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/1004
This commit is contained in:
@@ -25,6 +25,16 @@ export const getRequirementName = (requirementName) => {
|
|||||||
method: "get"
|
method: "get"
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//需求汇总-项目名称关键词匹配
|
||||||
|
export const getProjectName = (projectName) => {
|
||||||
|
return request({
|
||||||
|
url: `workflow/mosr/requirement/collect`,
|
||||||
|
method: "get",
|
||||||
|
params:{
|
||||||
|
projectName:projectName
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
//获取需求上报 流程信息
|
//获取需求上报 流程信息
|
||||||
export const getProcessInfo = (specialFund) => {
|
export const getProcessInfo = (specialFund) => {
|
||||||
return request({
|
return request({
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" >
|
<el-col :span="6" v-if="isSpecialFund">
|
||||||
<!-- label-width="106" v-if="isSpecialFund"-->
|
<!-- label-width="106" -->
|
||||||
<el-form-item label="实际专项资金(元)" prop="specialFundAmount" label-width="140">
|
<el-form-item label="实际专项资金(元)" prop="specialFundAmount" label-width="140">
|
||||||
<el-input v-model="localFormData.specialFundAmount" placeholder="请输入实际专项资金">
|
<el-input v-model="localFormData.specialFundAmount" placeholder="请输入实际专项资金">
|
||||||
</el-input>
|
</el-input>
|
||||||
@@ -140,19 +140,20 @@
|
|||||||
@cancelOrClear="optionalChargeLeaderPickerCancel"/>
|
@cancelOrClear="optionalChargeLeaderPickerCancel"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" v-if="preProcessShow === 'EDIT'">
|
<el-col :span="24" v-if="preProcessShow === 'EDIT'||title==='apply'">
|
||||||
<el-form-item label="前置流程" :required="preProcessRequired" prop="preProcess" label-width="125">
|
<el-form-item label="前置流程" :required="preProcessRequired" prop="preProcess" :label-width="title==='apply'?130:125">
|
||||||
<el-button color="#DED0B2" @click="handleShowPreTable" style="margin-right: 10px">
|
<select-pre-process :formData="localFormData" :basicData="basicData"/>
|
||||||
{{
|
<!-- <el-button color="#DED0B2" @click="handleShowPreTable" style="margin-right: 10px">-->
|
||||||
localFormData.preProcess && localFormData.preProcess?.length > 0 ? '更改' : sessionParams.preProcess && sessionParams.preProcess?.length > 0 ? '更改' : '请选择'
|
<!-- {{-->
|
||||||
}}
|
<!-- localFormData.preProcess && localFormData.preProcess?.length > 0 ? '更改' : sessionParams.preProcess && sessionParams.preProcess?.length > 0 ? '更改' : '请选择'-->
|
||||||
</el-button>
|
<!-- }}-->
|
||||||
<div v-for="(item,index) in getRequestName(localFormData.preProcess)" :key="item.requestId">
|
<!-- </el-button>-->
|
||||||
<a :href="item.baseUrl" target="_blank"
|
<!-- <div v-for="(item,index) in getRequestName(localFormData.preProcess)" :key="item.requestId">-->
|
||||||
style="color: #2a99ff;cursor: pointer">{{ item.requestName }}<span
|
<!-- <a :href="item.baseUrl" target="_blank"-->
|
||||||
v-if="index != localFormData.preProcess?.length -1">,</span>
|
<!-- style="color: #2a99ff;cursor: pointer">{{ item.requestName }}<span-->
|
||||||
</a>
|
<!-- v-if="index != localFormData.preProcess?.length -1">,</span>-->
|
||||||
</div>
|
<!-- </a>-->
|
||||||
|
<!-- </div>-->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -287,6 +288,10 @@ const props = defineProps({
|
|||||||
type: Object,
|
type: Object,
|
||||||
default: {}
|
default: {}
|
||||||
},
|
},
|
||||||
|
basicData: {
|
||||||
|
type: Object,
|
||||||
|
default: {}
|
||||||
|
},
|
||||||
formData: {
|
formData: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: {}
|
default: {}
|
||||||
@@ -563,9 +568,15 @@ const choosePreProcess = () => {
|
|||||||
requestName: item.requestName,
|
requestName: item.requestName,
|
||||||
baseUrl: item.baseUrl
|
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
|
showPreTable.value = false
|
||||||
localStorage.setItem('preProcess', JSON.stringify(preProcessArray))
|
localStorage.setItem('preProcess', JSON.stringify(preProcessArray))
|
||||||
}
|
}
|
||||||
@@ -830,8 +841,7 @@ const init = async () => {
|
|||||||
let data = res.data
|
let data = res.data
|
||||||
deploymentId.value = data.deploymentId
|
deploymentId.value = data.deploymentId
|
||||||
deploymentData.value = data
|
deploymentData.value = data
|
||||||
console.log('data,',data)
|
// preProcessRequired.value = data.deploymentName === '重大项目立项' || data.deploymentName === '重大项目验收';
|
||||||
preProcessRequired.value = data.deploymentName === '重大项目立项' || data.deploymentName === '重大项目验收';
|
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
processStore.runningList.value = data.runningList;
|
processStore.runningList.value = data.runningList;
|
||||||
processStore.endList.value = data.endList;
|
processStore.endList.value = data.endList;
|
||||||
@@ -867,7 +877,6 @@ watchEffect(() => {
|
|||||||
// if (props.formData.projectChargePerson != null) {
|
// if (props.formData.projectChargePerson != null) {
|
||||||
// localFormData.value.projectChargePerson = props.formData.projectChargePerson.id
|
// localFormData.value.projectChargePerson = props.formData.projectChargePerson.id
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (localStorage.getItem('preProcess')) {
|
if (localStorage.getItem('preProcess')) {
|
||||||
let param = JSON.parse(localStorage.getItem('preProcess'))
|
let param = JSON.parse(localStorage.getItem('preProcess'))
|
||||||
localFormData.value.preProcess = param
|
localFormData.value.preProcess = param
|
||||||
|
|||||||
@@ -28,7 +28,8 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<el-table :data="preProcessList" v-loading="loading"
|
<el-table :data="preProcessList" v-loading="loading"
|
||||||
@select="handleSelect" @select-all="handleSelect" row-key="requestId" ref="preProcessTable">
|
@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="requestId" label="请求id"></el-table-column>
|
||||||
<el-table-column prop="requestName" label="请求名称"></el-table-column>
|
<el-table-column prop="requestName" label="请求名称"></el-table-column>
|
||||||
<el-table-column prop="lastOperatorName" 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 loading = ref(false)
|
||||||
//暂存数据
|
//暂存数据
|
||||||
|
const originalProcess = ref([])
|
||||||
const currentList = ref([])
|
const currentList = ref([])
|
||||||
const showPreTable = ref(false)
|
const showPreTable = ref(false)
|
||||||
const selectRows = ref([])
|
const selectRows = ref([])
|
||||||
const preProcessList = ref([])
|
const preProcessList = ref([])
|
||||||
const total = ref(0)
|
const total = ref(0)
|
||||||
|
const preProcessTable = ref()
|
||||||
const localFormData = ref({
|
const localFormData = ref({
|
||||||
projectPersonIds: [],
|
projectPersonIds: [],
|
||||||
projectChargePerson: null,
|
projectChargePerson: null,
|
||||||
@@ -118,8 +121,33 @@ const handleReset = () => {
|
|||||||
const handleSelect = async (selection) => {
|
const handleSelect = async (selection) => {
|
||||||
selectRows.value = 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 = () => {
|
const handleShowPreTable = () => {
|
||||||
showPreTable.value = true
|
showPreTable.value = true
|
||||||
|
nextTick(() => {
|
||||||
|
localFormData.value.preProcess?.forEach((item) => {
|
||||||
|
if (preProcessTable.value) {
|
||||||
|
preProcessTable.value.toggleRowSelection(item, true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
getPreProcessList()
|
getPreProcessList()
|
||||||
}
|
}
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
@@ -129,17 +157,30 @@ const handleCancel = () => {
|
|||||||
const choosePreProcess = () => {
|
const choosePreProcess = () => {
|
||||||
let preProcessObj = {}
|
let preProcessObj = {}
|
||||||
let preProcessArray = []
|
let preProcessArray = []
|
||||||
|
const detailProcessStr = localStorage.getItem('detailProcess');
|
||||||
|
try {
|
||||||
|
originalProcess.value = JSON.parse(detailProcessStr)
|
||||||
|
} catch (e) {
|
||||||
|
originalProcess.value=[]
|
||||||
|
}
|
||||||
selectRows.value.forEach((item) => {
|
selectRows.value.forEach((item) => {
|
||||||
preProcessObj = {
|
const exists = originalProcess.value?.some(dp => dp.requestId === item.requestId)
|
||||||
requestId: item.requestId,
|
if (!exists) {
|
||||||
requestName: item.requestName,
|
preProcessObj = {
|
||||||
baseUrl: item.baseUrl
|
requestId: item.requestId,
|
||||||
|
requestName: item.requestName,
|
||||||
|
baseUrl: item.baseUrl
|
||||||
|
}
|
||||||
|
preProcessArray.push(preProcessObj)
|
||||||
}
|
}
|
||||||
preProcessArray.push(preProcessObj)
|
|
||||||
})
|
})
|
||||||
localFormData.value.preProcess = preProcessArray
|
if(props.formData.mode === 'view'||props.formData.mode === 'resubmit'){
|
||||||
showPreTable.value = false
|
localFormData.value.preProcess = [...originalProcess.value,...preProcessArray]
|
||||||
|
}else{
|
||||||
|
localFormData.value.preProcess = preProcessArray
|
||||||
|
}
|
||||||
localStorage.setItem('preProcess', JSON.stringify(preProcessArray))
|
localStorage.setItem('preProcess', JSON.stringify(preProcessArray))
|
||||||
|
showPreTable.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
const getPreProcessList = () => {
|
const getPreProcessList = () => {
|
||||||
@@ -154,13 +195,6 @@ const getPreProcessList = () => {
|
|||||||
searchArray.push(item)
|
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
|
total.value = searchArray.length
|
||||||
currentList.value = searchArray
|
currentList.value = searchArray
|
||||||
preProcessList.value = currentList.value.slice(0, 10)
|
preProcessList.value = currentList.value.slice(0, 10)
|
||||||
@@ -177,6 +211,7 @@ const handleCurrentChange = (val) => {
|
|||||||
pageInfo.pageNum = val;
|
pageInfo.pageNum = val;
|
||||||
preProcessList.value = currentList.value.slice((val - 1) * pageInfo.pageSize, val * pageInfo.pageSize)
|
preProcessList.value = currentList.value.slice((val - 1) * pageInfo.pageSize, val * pageInfo.pageSize)
|
||||||
};
|
};
|
||||||
|
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
return Object.keys(props.formData).length && (localFormData.value = props.formData)
|
return Object.keys(props.formData).length && (localFormData.value = props.formData)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="link-box">
|
<div class="link-box">
|
||||||
<el-scrollbar noresize height="34" >
|
<el-scrollbar noresize height="36" >
|
||||||
<!-- style="display: flex"-->
|
<!-- style="display: flex"-->
|
||||||
<div >
|
<div >
|
||||||
<router-link
|
<router-link
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
import fvSelect from '@/fvcomponents/fvSelect/index.vue'
|
import fvSelect from '@/fvcomponents/fvSelect/index.vue'
|
||||||
import {addPlan, getRequirementName} from "@/api/project-demand/summary";
|
import {addPlan, getProjectName, getRequirementName} from "@/api/project-demand/summary";
|
||||||
import {getSubCompOpt} from "@/api/user/user";
|
import {getSubCompOpt} from "@/api/user/user";
|
||||||
import {filterRequirementName} from "@/api/project-demand";
|
import {filterRequirementName} from "@/api/project-demand";
|
||||||
|
|
||||||
@@ -73,6 +73,36 @@ const searchConfig = ref([
|
|||||||
},
|
},
|
||||||
component: shallowRef(fvSelect),
|
component: shallowRef(fvSelect),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '项目名称',
|
||||||
|
prop: 'projectName',
|
||||||
|
props: {
|
||||||
|
placeholder: '请输入项目名称',
|
||||||
|
clearable: true,
|
||||||
|
filterable: true,
|
||||||
|
options: [],
|
||||||
|
remote: true,
|
||||||
|
remoteMethod:async (val)=>{
|
||||||
|
if(val){
|
||||||
|
const res=await getProjectName(val)
|
||||||
|
if(res.code==1000){
|
||||||
|
let optionObj={}
|
||||||
|
let optionsMap = new Map();
|
||||||
|
res.data.rows.forEach(item=>{
|
||||||
|
optionObj={
|
||||||
|
value:item.projectName,
|
||||||
|
label:item.projectName
|
||||||
|
}
|
||||||
|
optionsMap.set(optionObj.value, optionObj);
|
||||||
|
})
|
||||||
|
// 将 Map 转换为数组
|
||||||
|
searchConfig.value.find(item => item.prop == 'projectName').props.options = Array.from(optionsMap.values())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
component: shallowRef(fvSelect),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: '项目类型',
|
label: '项目类型',
|
||||||
prop: 'projectType',
|
prop: 'projectType',
|
||||||
|
|||||||
@@ -50,6 +50,7 @@
|
|||||||
:mode="mode"
|
:mode="mode"
|
||||||
:step="showActive"
|
:step="showActive"
|
||||||
:data="detailData"
|
:data="detailData"
|
||||||
|
:basicData="basicData"
|
||||||
:preProcessShow="preProcessShow"
|
:preProcessShow="preProcessShow"
|
||||||
:formData="detailData.formData"/>
|
:formData="detailData.formData"/>
|
||||||
</template>
|
</template>
|
||||||
@@ -115,6 +116,7 @@ const getAllInfo = async (state) => {
|
|||||||
if (code === 1000) {
|
if (code === 1000) {
|
||||||
data.formData.preProcess = data.formData.preProcess ? JSON.parse(data.formData.preProcess) : undefined
|
data.formData.preProcess = data.formData.preProcess ? JSON.parse(data.formData.preProcess) : undefined
|
||||||
detailData.value = data
|
detailData.value = data
|
||||||
|
localStorage.setItem('detailProcess', JSON.stringify(data.formData.preProcess))
|
||||||
mode.value = data.formData.mode
|
mode.value = data.formData.mode
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
processStore.runningList.value = data.runningList;
|
processStore.runningList.value = data.runningList;
|
||||||
|
|||||||
Reference in New Issue
Block a user