fix : 修复页面排版及项目管理的公司查询

This commit is contained in:
2024-08-01 22:16:30 +08:00
parent ff668b1887
commit 2f42a7464a
22 changed files with 291 additions and 133 deletions

View File

@@ -2,7 +2,7 @@
<el-form :model="formData" ref="applyForm" :rules="rules" :label-position="labelPosition"> <el-form :model="formData" ref="applyForm" :rules="rules" :label-position="labelPosition">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item :label="label" prop="attachment" label-width="125"> <el-form-item :label="label" prop="attachment" >
<template v-if="preview"> <template v-if="preview">
<file-upload @getFile="getAttachment" :multiple="false" <file-upload @getFile="getAttachment" :multiple="false"
:disabled="singleFileArray?.length>0?true:false" title="如需修改需求申请书附件,请先删除文件再上传!"/> :disabled="singleFileArray?.length>0?true:false" title="如需修改需求申请书附件,请先删除文件再上传!"/>
@@ -22,7 +22,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="其他文件" label-width="125"> <el-form-item label="其他文件" label-width="120">
<file-upload @getFile="getOtherFile"/> <file-upload @getFile="getOtherFile"/>
<fvTable style="width: 100%;max-height: 162px;" v-if="showTable" height="162" :tableConfig="tableConfig" <fvTable style="width: 100%;max-height: 162px;" v-if="showTable" height="162" :tableConfig="tableConfig"
:data="allFileList" :isSettingCol="false" :pagination="false"> :data="allFileList" :isSettingCol="false" :pagination="false">

View File

@@ -33,8 +33,7 @@
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="margin-top: -15px;margin-bottom: -15px">
<el-col :span="24">
<baseTitle title="征集说明"></baseTitle> <baseTitle title="征集说明"></baseTitle>
<el-form-item> <el-form-item>
<el-card style="width: 100%"> <el-card style="width: 100%">
@@ -43,13 +42,13 @@
</el-card> </el-card>
</el-form-item> </el-form-item>
</el-col> </el-col>
<baseTitle v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" title="附件列表"></baseTitle> <baseTitle v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" title="附件列表"> </baseTitle>
<el-col :span="24"> <el-col :span="24">
<file-component title="" tag="需求征集" <file-component title="" tag="需求征集"
v-model:value="formData.fileList" :processViewer="processViewer" v-model:value="formData.fileList" :processViewer="processViewer"
:file-list-show="fileListShow"/> :file-list-show="fileListShow"/>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24" style="margin-top: -15px">
<div v-if="data.taskId"> <div v-if="data.taskId">
<baseTitle title="审核意见"></baseTitle> <baseTitle title="审核意见"></baseTitle>
<el-form-item prop="_value"> <el-form-item prop="_value">
@@ -63,7 +62,7 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<div class="approval-record"> <div class="approval-record" style="margin-top: -15px">
<div class="approval-title"> <div class="approval-title">
<baseTitle title="审批记录"></baseTitle> <baseTitle title="审批记录"></baseTitle>
<div class="diagram"> <div class="diagram">

View File

@@ -1,10 +1,30 @@
<template> <template>
<!-- <baseTitle title="审核意见"></baseTitle>--> <!-- <baseTitle title="审核意见"></baseTitle>-->
<!-- <fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>--> <!-- <fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>-->
<div class="oper-page-btn"> <div class="oper-page-btn" style="display: flex">
<el-button type="danger" @click="handleReject">驳回</el-button> <el-select v-if="taskUserOptionList?.length>0" v-model="backNode" placeholder="请选择退回节点" clearable style="width: 150px;margin-right: 10px">
<el-option
v-for="item in taskUserOptionList"
:key="item.nodeId"
:label="item.nodeName + (item.userInfo ? ':' + item.userInfo.name : '')"
:value="item.nodeId">
</el-option>
</el-select>
<el-button type="danger" @click="rollbackHandler">驳回</el-button>
<el-button color="#DED0B2" @click="handleAgree">同意</el-button> <el-button color="#DED0B2" @click="handleAgree">同意</el-button>
</div> </div>
<!-- <el-dialog v-model="showBackNode" title="选择退回节点" width="400">-->
<!-- <el-select v-model="backNode" placeholder="请选择退回节点" clearable filterable>-->
<!-- <el-option-->
<!-- v-for="item in taskUserOptionList"-->
<!-- :key="item.nodeId"-->
<!-- :label="item.nodeName + ':' + item.userInfo.name"-->
<!-- :value="item.nodeId">-->
<!--&lt;!&ndash; {{item.nodeName }} : {{item.userInfo.name}}&ndash;&gt;-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- <el-button type="danger" @click="rollbackHandler">确认</el-button>-->
<!-- </el-dialog>-->
</template> </template>
<script setup lang="jsx"> <script setup lang="jsx">
@@ -27,10 +47,17 @@ const props = defineProps({
value: { value: {
type: String, type: String,
default: '' default: ''
},
//退回节点选择框数据
taskUserOptionList: {
type: Array,
default: []
} }
}) })
const form = ref() const form = ref()
const backNode = ref('')
const showBackNode = ref(false)
const schema = computed(() => { const schema = computed(() => {
return [ return [
{ {
@@ -120,6 +147,35 @@ const back = () => {
} }
// 驳回 // 驳回
const handleReject = async () => { const handleReject = async () => {
// const values = form.value.getValues()
showBackNode.value = true
// if (!_value.value) {
// ElNotification({
// title: '提示',
// message: '请填写审核意见',
// type: 'warning'
// })
// return
// }
// const params = {
// taskId: props.taskId,
// // ...values
// auditOpinion: _value.value
// }
// // console.log('params', params)
// const res = await rejectTask(params)
// ElNotification({
// title: '提示',
// message: res.msg,
// type: res.code === 1000 ? 'success' : 'error'
// })
// if (res.code === 1000){
// tagsViewStore.delVisitedViews(router.currentRoute.value.path)
// back()
// }
}
//回退节点
const rollbackHandler = async () => {
// const values = form.value.getValues() // const values = form.value.getValues()
if (!_value.value) { if (!_value.value) {
ElNotification({ ElNotification({
@@ -132,7 +188,8 @@ const handleReject = async () => {
const params = { const params = {
taskId: props.taskId, taskId: props.taskId,
// ...values // ...values
auditOpinion: _value.value auditOpinion: _value.value,
rollBackId: backNode.value
} }
// console.log('params', params) // console.log('params', params)
const res = await rejectTask(params) const res = await rejectTask(params)
@@ -141,7 +198,7 @@ const handleReject = async () => {
message: res.msg, message: res.msg,
type: res.code === 1000 ? 'success' : 'error' type: res.code === 1000 ? 'success' : 'error'
}) })
if (res.code === 1000){ if (res.code === 1000) {
tagsViewStore.delVisitedViews(router.currentRoute.value.path) tagsViewStore.delVisitedViews(router.currentRoute.value.path)
back() back()
} }
@@ -160,7 +217,7 @@ const handleAgree = async () => {
message: res.msg, message: res.msg,
type: res.code === 1000 ? 'success' : 'error' type: res.code === 1000 ? 'success' : 'error'
}) })
if (res.code === 1000){ if (res.code === 1000) {
tagsViewStore.delVisitedViews(router.currentRoute.value.path) tagsViewStore.delVisitedViews(router.currentRoute.value.path)
back() back()
} }

View File

@@ -83,6 +83,7 @@
</div> </div>
</el-form> </el-form>
<opinion v-if="data.taskId" :formData="data.formData" :taskId="data.taskId" <opinion v-if="data.taskId" :formData="data.formData" :taskId="data.taskId"
:taskUserOptionList="data.taskUserOptionList"
v-model:value="formData.auditOpinion"></opinion> v-model:value="formData.auditOpinion"></opinion>
<file-preview ref="filePreviewRef" v-if="filePreviewShow" :fileName="filePreviewParam.fileName" :fileUrl="filePreviewParam.fileUrl" <file-preview ref="filePreviewRef" v-if="filePreviewShow" :fileName="filePreviewParam.fileName" :fileUrl="filePreviewParam.fileUrl"
:fileType="filePreviewParam.fileType"/> :fileType="filePreviewParam.fileType"/>

View File

@@ -2,33 +2,33 @@
<div class="detail-block" v-loading="loading"> <div class="detail-block" v-loading="loading">
<baseTitle title="需求上报信息"></baseTitle> <baseTitle title="需求上报信息"></baseTitle>
<el-form :model="localFormData" ref="summaryForm" :rules="rules"> <el-form :model="localFormData" ref="summaryForm" :rules="rules">
<el-row gutter="50"> <el-row gutter="14">
<el-col :span="8"> <el-col :span="6">
<el-form-item label="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="projectName">
<span>{{ localFormData.projectName }}</span> <span>{{ localFormData.projectName }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="开始时间" prop="startTime"> <el-form-item label="开始时间" prop="startTime">
<span>{{ localFormData.startTime }}</span> <span>{{ localFormData.startTime }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="结束时间" prop="endTime"> <el-form-item label="结束时间" prop="endTime">
<span>{{ localFormData.endTime }}</span> <span>{{ localFormData.endTime }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="项目类型" prop="projectType"> <el-form-item label="项目类型" prop="projectType">
<span>{{ filterDict(cacheStore.getDict('project_type'), localFormData.projectType) }}</span> <span>{{ filterDict(cacheStore.getDict('project_type'), localFormData.projectType) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="研发主体" prop="rdSubject"> <el-form-item label="研发主体" prop="rdSubject">
<span>{{ filterDict(cacheStore.getDict('rd_subject'), localFormData.rdSubject) }}</span> <span>{{ filterDict(cacheStore.getDict('rd_subject'), localFormData.rdSubject) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="出资类型" prop="investmentType"> <el-form-item label="出资类型" prop="investmentType">
<span>{{ filterDict(cacheStore.getDict('invest_type'), localFormData.investmentType) }}</span> <span>{{ filterDict(cacheStore.getDict('invest_type'), localFormData.investmentType) }}</span>
</el-form-item> </el-form-item>
@@ -38,45 +38,45 @@
<!-- <span>{{ filterDict(cacheStore.getDict('project_impact'), localFormData.projectImpact) }}</span>--> <!-- <span>{{ filterDict(cacheStore.getDict('project_impact'), localFormData.projectImpact) }}</span>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- </el-col>--> <!-- </el-col>-->
<el-col :span="8"> <el-col :span="6">
<el-form-item label="所属业务板块" prop="businessSegment"> <el-form-item label="所属业务板块" prop="businessSegment">
<span>{{ filterDict(cacheStore.getDict('business_segment'), localFormData.businessSegment) }}</span> <span>{{ filterDict(cacheStore.getDict('business_segment'), localFormData.businessSegment) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="预期技术标准制定" prop="technicalStandard"> <el-form-item label="预期技术标准制定" prop="technicalStandard">
<span>{{ filterDict(cacheStore.getDict('technical_standard'), localFormData.technicalStandard) }}</span> <span>{{ filterDict(cacheStore.getDict('technical_standard'), localFormData.technicalStandard) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="产学研联合" prop="industryUniversityResearch"> <el-form-item label="产学研联合" prop="industryUniversityResearch">
<span>{{ <span>{{
filterDict(cacheStore.getDict('industry_university'), localFormData.industryUniversityResearch) filterDict(cacheStore.getDict('industry_university'), localFormData.industryUniversityResearch)
}}</span> }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="开展政府申报" prop="governmentDeclaration"> <el-form-item label="开展政府申报" prop="governmentDeclaration">
<span>{{ <span>{{
filterDict(cacheStore.getDict('government_declaration'), localFormData.governmentDeclaration) filterDict(cacheStore.getDict('government_declaration'), localFormData.governmentDeclaration)
}}</span> }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" v-if="localFormData.isSpecialFund"> <el-col :span="6" v-if="localFormData.isSpecialFund">
<el-form-item label="专项资金名称" prop="specialFund"> <el-form-item label="专项资金名称" prop="specialFund">
<span>{{ <span>{{
localFormData.specialFundId === 0 ? localFormData.specialFund : changeName(fundOption, localFormData.specialFundId) localFormData.specialFundId === 0 ? localFormData.specialFund : changeName(fundOption, localFormData.specialFundId)
}}</span> }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="知识产权状况" prop="intellectualProperty"> <el-form-item label="知识产权状况" prop="intellectualProperty">
<span>{{ <span>{{
filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty) filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty)
}}</span> }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="16"> <el-col :span="12">
<el-form-item label="预期成果形式" prop="resultForm"> <el-form-item label="预期成果形式" prop="resultForm">
<span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span> <span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span>
</el-form-item> </el-form-item>
@@ -84,48 +84,48 @@
<el-col :span="24" style="margin-top: -15px"> <el-col :span="24" style="margin-top: -15px">
<baseTitle title="预期知识产权"></baseTitle> <baseTitle title="预期知识产权"></baseTitle>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="发明专利(项)" prop="inventionPatent"> <el-form-item label="发明专利(项)" prop="inventionPatent">
<span>{{ localFormData.inventionPatent }}</span> <span>{{ localFormData.inventionPatent }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="实用性新型专利(项)" prop="newPatent"> <el-form-item label="实用性新型专利(项)" prop="newPatent">
<span>{{ localFormData.newPatent }}</span> <span>{{ localFormData.newPatent }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="软件著作权(项)" prop="softwareCopyright"> <el-form-item label="软件著作权(项)" prop="softwareCopyright">
<span>{{ localFormData.softwareCopyright }}</span> <span>{{ localFormData.softwareCopyright }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="著作权(项)" prop="copyright"> <el-form-item label="著作权(项)" prop="copyright">
<span>{{ localFormData.copyright }}</span> <span>{{ localFormData.copyright }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="其他(项)" prop="other"> <el-form-item label="其他(项)" prop="other">
<span>{{ localFormData.other }}</span> <span>{{ localFormData.other }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="经济预算(元)" prop="economicEstimate"> <el-form-item label="经济预算(元)" prop="economicEstimate">
<span>{{ toThousands(localFormData.economicEstimate) }}</span> <span>{{ toThousands(localFormData.economicEstimate) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="其中申请公司总部科技创新专项资金(元)" prop="specialFundAmount" <el-form-item label="其中申请公司总部科技创新专项资金(元)" prop="specialFundAmount"
v-if="localFormData.isSpecialFund"> v-if="localFormData.isSpecialFund">
<span>{{ toThousands(localFormData.specialFundAmount) }}</span> <span>{{ toThousands(localFormData.specialFundAmount) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="12">
<el-form-item label="现有业务描述" prop="serviceDescription"> <el-form-item label="现有业务描述" prop="serviceDescription">
<span>{{ localFormData.serviceDescription }}</span> <span>{{ localFormData.serviceDescription }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="12">
<el-form-item label="研发项目关键内容描述" prop="contentDescription"> <el-form-item label="研发项目关键内容描述" prop="contentDescription">
<span>{{ localFormData.contentDescription }}</span> <span>{{ localFormData.contentDescription }}</span>
</el-form-item> </el-form-item>

View File

@@ -14,6 +14,18 @@ import { getSubCompOpt } from '@/api/user/user.js';
const router = useRouter() const router = useRouter()
const route = useRoute() const route = useRoute()
const searchConfig = ref([ const searchConfig = ref([
{
label: '公司名称',
prop: 'affiliatedCompanyIds',
component: 'el-tree-select',
props: {
placeholder: '请输入公司名称查询',
clearable: true,
data: [],
filterable: true,
checkStrictly: true
}
},
{ {
label: '项目名称', label: '项目名称',
prop: 'projectName', prop: 'projectName',
@@ -25,18 +37,7 @@ const searchConfig = ref([
checkStrictly: true checkStrictly: true
} }
}, },
{
label: '公司名称',
prop: 'affiliatedCompanyIds',
component: 'el-tree-select',
props: {
placeholder: '请输入',
clearable: true,
data: [],
filterable: true,
checkStrictly: true
}
},
{ {
label: '时间', label: '时间',
prop: 'time', prop: 'time',
@@ -107,13 +108,13 @@ const tableConfig = reactive({
width:85 width:85
}, },
{ {
prop: 'projectName', prop: 'affiliatedCompany',
label: '项目名称', label: '公司名称',
align: 'center' align: 'center'
}, },
{ {
prop: 'affiliatedCompany', prop: 'projectName',
label: '公司名称', label: '项目名称',
align: 'center' align: 'center'
}, },
{ {

View File

@@ -52,6 +52,7 @@
</div> </div>
</div> </div>
<opinion v-if="shareData.taskId" :formData="shareData.formData" :taskId="shareData.taskId" <opinion v-if="shareData.taskId" :formData="shareData.formData" :taskId="shareData.taskId"
:taskUserOptionList="shareData.taskUserOptionList"
v-model:value="auditOpinion"></opinion> v-model:value="auditOpinion"></opinion>
</template> </template>

View File

@@ -54,6 +54,7 @@
</div> </div>
</div> </div>
<opinion-moblie v-if="shareData.taskId" :formData="shareData.formData" :taskId="shareData.taskId" <opinion-moblie v-if="shareData.taskId" :formData="shareData.formData" :taskId="shareData.taskId"
:taskUserOptionList="shareData.taskUserOptionList"
v-model:value="auditOpinion"></opinion-moblie> v-model:value="auditOpinion"></opinion-moblie>
</div> </div>
</template> </template>

View File

@@ -2,14 +2,14 @@
<div v-loading="loading" class="add-block"> <div v-loading="loading" class="add-block">
<baseTitle title="需求征集信息录入"></baseTitle> <baseTitle title="需求征集信息录入"></baseTitle>
<el-form :model="formData" ref="demandForm" :rules="rules"> <el-form :model="formData" ref="demandForm" :rules="rules">
<el-row gutter="30"> <el-row gutter="14">
<el-col :span="8"> <el-col :span="6">
<el-form-item label="征集名称" prop="requirementName" label-width="96"> <el-form-item label="征集名称" prop="requirementName" >
<el-input v-model="formData.requirementName" placeholder="请输入名称" clearable></el-input> <el-input v-model="formData.requirementName" placeholder="请输入名称" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="征集类型" prop="collectType" label-width="105"> <el-form-item label="征集类型" prop="collectType">
<el-select v-model="formData.collectType" placeholder="请选择征集类型" clearable filterable> <el-select v-model="formData.collectType" placeholder="请选择征集类型" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('collect_type')" v-for="item in cacheStore.getDict('collect_type')"
@@ -20,10 +20,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="需求上报截止时间" prop="deadline"> <el-form-item label="需求上报截止时间" prop="deadline">
<el-config-provider> <el-config-provider>
<el-date-picker <el-date-picker
style="width: 100%"
v-model="formData.deadline" v-model="formData.deadline"
type="date" type="date"
placeholder="需求上报截止时间" placeholder="需求上报截止时间"
@@ -33,15 +34,15 @@
</el-config-provider> </el-config-provider>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="是否专项资金" prop="isSpecialFund"> <el-form-item label="专项资金" prop="isSpecialFund" required>
<el-select v-model="formData.isSpecialFund" placeholder="是否专项资金" clearable filterable> <el-select v-model="formData.isSpecialFund" placeholder="是否专项资金" clearable filterable>
<el-option :value="true" label="是"></el-option> <el-option :value="true" label="是"></el-option>
<el-option :value="false" label="否"></el-option> <el-option :value="false" label="否"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="专项资金名称" prop="specialFundId" v-if="formData.isSpecialFund"> <el-form-item label="专项资金名称" prop="specialFundId" v-if="formData.isSpecialFund">
<el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable> <el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable>
<el-option <el-option
@@ -54,7 +55,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" style="margin-bottom: -25px"> <el-col :span="24" style="margin-bottom: -25px">
<el-form-item label="征集公司" :required="true" prop="" class="company-select" label-width="96"> <el-form-item label="征集公司" :required="true" prop="" class="company-select">
<div style="width: 100%"> <div style="width: 100%">
<el-button color="#DED0B2" @click="showCompany">{{ selectedCompanyList.length === 0 ? '请选择征集公司' : '更改' }} <el-button color="#DED0B2" @click="showCompany">{{ selectedCompanyList.length === 0 ? '请选择征集公司' : '更改' }}
</el-button> </el-button>

View File

@@ -6,7 +6,7 @@
<div class="oper-page-btn" v-if="collectData.formData?.report"> <div class="oper-page-btn" v-if="collectData.formData?.report">
<el-button color="#DED0B2" @click="handleDemandReport">需求上报</el-button> <el-button color="#DED0B2" @click="handleDemandReport">需求上报</el-button>
</div> </div>
<opinion v-if="collectData.taskId" :formData="formData" :taskId="collectData.taskId" <opinion v-if="collectData.taskId" :formData="formData" :taskId="collectData.taskId" :taskUserOptionList="collectData.taskUserOptionList"
v-model:value="auditOpinion"></opinion> v-model:value="auditOpinion"></opinion>
</template> </template>

View File

@@ -4,7 +4,7 @@
<CollectionDetailMoblie :formData="collectData.formData" :data="collectData" type="singleDetail" <CollectionDetailMoblie :formData="collectData.formData" :data="collectData" type="singleDetail"
:fileListShow="fileListShow" :fileListShow="fileListShow"
:processViewer="processViewer" :loading="loading" v-model:value="auditOpinion"/> :processViewer="processViewer" :loading="loading" v-model:value="auditOpinion"/>
<OpinionMoblie v-if="collectData.taskId" :formData="formData" :taskId="collectData.taskId" v-model:value="auditOpinion"></OpinionMoblie> <OpinionMoblie v-if="collectData.taskId" :formData="formData" :taskId="collectData.taskId" :taskUserOptionList="collectData.taskUserOptionList" v-model:value="auditOpinion"></OpinionMoblie>
</div> </div>
</template> </template>

View File

@@ -2,14 +2,14 @@
<div class="detail-block" v-loading="loading"> <div class="detail-block" v-loading="loading">
<baseTitle title="需求上报"></baseTitle> <baseTitle title="需求上报"></baseTitle>
<el-form :model="formData" ref="summaryForm" :rules="rules"> <el-form :model="formData" ref="summaryForm" :rules="rules">
<el-row gutter="15"> <el-row gutter="14">
<el-col :span="8"> <el-col :span="6">
<el-form-item label="项目名称" prop="projectName" label-width="125"> <el-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入项目名称" clearable></el-input> <el-input v-model="formData.projectName" placeholder="请输入项目名称" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="开始时间" prop="startTime" label-width="145"> <el-form-item label="开始时间" prop="startTime">
<el-config-provider> <el-config-provider>
<el-date-picker <el-date-picker
v-model="formData.startTime" v-model="formData.startTime"
@@ -22,9 +22,9 @@
</el-config-provider> </el-config-provider>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="结束时间" prop="endTime" <el-form-item label="结束时间" prop="endTime"
:title="!formData.startTime?'请先选择开始时间!':''" label-width="135"> :title="!formData.startTime?'请先选择开始时间!':''">
<el-config-provider> <el-config-provider>
<el-date-picker <el-date-picker
v-model="formData.endTime" v-model="formData.endTime"
@@ -39,8 +39,8 @@
</el-config-provider> </el-config-provider>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="项目类型" prop="projectType" label-width="125"> <el-form-item label="项目类型" prop="projectType">
<el-select v-model="formData.projectType" placeholder="请选择项目类型" clearable filterable> <el-select v-model="formData.projectType" placeholder="请选择项目类型" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('project_type')" v-for="item in cacheStore.getDict('project_type')"
@@ -51,8 +51,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="研发主体" prop="rdSubject" label-width="145"> <el-form-item label="研发主体" prop="rdSubject">
<el-select v-model="formData.rdSubject" placeholder="请选择研发主体" clearable filterable> <el-select v-model="formData.rdSubject" placeholder="请选择研发主体" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('rd_subject')" v-for="item in cacheStore.getDict('rd_subject')"
@@ -63,8 +63,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="出资类型" prop="investmentType" label-width="135"> <el-form-item label="出资类型" prop="investmentType">
<el-select v-model="formData.investmentType" placeholder="请选择出资类型" clearable filterable> <el-select v-model="formData.investmentType" placeholder="请选择出资类型" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('invest_type')" v-for="item in cacheStore.getDict('invest_type')"
@@ -87,8 +87,8 @@
<!-- </el-select>--> <!-- </el-select>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- </el-col>--> <!-- </el-col>-->
<el-col :span="8"> <el-col :span="6">
<el-form-item label="所属业务板块" prop="businessSegment" label-width="125"> <el-form-item label="业务板块" prop="businessSegment">
<el-select v-model="formData.businessSegment" placeholder="请选择所属业务板块" clearable filterable> <el-select v-model="formData.businessSegment" placeholder="请选择所属业务板块" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('business_segment')" v-for="item in cacheStore.getDict('business_segment')"
@@ -99,8 +99,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="预期技术标准制定" prop="technicalStandard" label-width="145"> <el-form-item label="技术标准" prop="technicalStandard">
<el-select v-model="formData.technicalStandard" placeholder="请选择预期技术标准制定" clearable filterable> <el-select v-model="formData.technicalStandard" placeholder="请选择预期技术标准制定" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('technical_standard')" v-for="item in cacheStore.getDict('technical_standard')"
@@ -113,8 +113,8 @@
</el-col> </el-col>
<!-- <el-col :span="route.query.id && formData.isSpecialFund?8:!formData.isSpecialFund?!route.query.id?6:8:6">--> <!-- <el-col :span="route.query.id && formData.isSpecialFund?8:!formData.isSpecialFund?!route.query.id?6:8:6">-->
<el-col :span="8"> <el-col :span="6">
<el-form-item label="产学研联合" prop="industryUniversityResearch" label-width="135"> <el-form-item label="产学研联合" prop="industryUniversityResearch">
<el-radio-group v-model="formData.industryUniversityResearch"> <el-radio-group v-model="formData.industryUniversityResearch">
<el-radio v-for="item in cacheStore.getDict('industry_university')" <el-radio v-for="item in cacheStore.getDict('industry_university')"
:key="item.value" :key="item.value"
@@ -124,10 +124,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="route.query.id && formData.isSpecialFund?8:!formData.isSpecialFund?route.query.id?8:6:6">--> <!-- <el-col :span="route.query.id && formData.isSpecialFund?8:!formData.isSpecialFund?route.query.id?8:6:6">-->
</el-row> <!-- </el-row>-->
<el-row gutter="15"> <!-- <el-row gutter="10">-->
<el-col :span="8"> <el-col :span="6">
<el-form-item label="开展政府申报" prop="governmentDeclaration" label-width="125"> <el-form-item label="开展政府申报" prop="governmentDeclaration">
<!-- :label-width="route.query.id && formData.isSpecialFund?145:!formData.isSpecialFund?145:145">--> <!-- :label-width="route.query.id && formData.isSpecialFund?145:!formData.isSpecialFund?145:145">-->
<el-radio-group v-model="formData.governmentDeclaration"> <el-radio-group v-model="formData.governmentDeclaration">
<el-radio v-for="item in cacheStore.getDict('government_declaration')" <el-radio v-for="item in cacheStore.getDict('government_declaration')"
@@ -138,22 +138,21 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="!route.query.id && formData.isSpecialFund?4:!route.query.id?12:12" v-if="!route.query.id">--> <!-- <el-col :span="!route.query.id && formData.isSpecialFund?4:!route.query.id?12:12" v-if="!route.query.id">-->
<el-col :span="8" v-if="!route.query.id"> <el-col :span="6" v-if="!route.query.id">
<el-form-item label="是否专项资金" prop="isSpecialFund" label-width="145"> <el-form-item label="是否专项资金" prop="isSpecialFund" required>
<el-radio-group v-model="formData.isSpecialFund" @change="specialFundChange"> <el-radio-group v-model="formData.isSpecialFund" @change="specialFundChange">
<el-radio :label="true"></el-radio> <el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio> <el-radio :label="false"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" v-if="route.query.id && formData.isSpecialFund"> <el-col :span="6" v-if="route.query.id && formData.isSpecialFund">
<el-form-item label="专项资金名称" prop="specialFundId" <el-form-item label="专项资金名称" prop="specialFundId">
:label-width="route.query.id && formData.isSpecialFund?145:''">
<span>{{ formData.specialFund }}</span> <span>{{ formData.specialFund }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" v-if="!route.query.id && formData.isSpecialFund"> <el-col :span="6" v-if="!route.query.id && formData.isSpecialFund">
<el-form-item label="专项资金名称" prop="specialFundId" label-width="135"> <el-form-item label="专项资金" prop="specialFundId">
<el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable> <el-select v-model="formData.specialFundId" placeholder="请选择专项资金名称" clearable filterable>
<el-option <el-option
v-for="item in specialFundOption" v-for="item in specialFundOption"
@@ -164,10 +163,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" style="margin-bottom: -18px"> </el-row>
<el-row gutter="14">
<el-col :span="6" style="margin-bottom: -18px">
<!-- :label-width="!formData.isSpecialFund?!route.query.id?125:125:125">--> <!-- :label-width="!formData.isSpecialFund?!route.query.id?125:125:125">-->
<el-form-item label="知识产权状况" prop="intellectualProperty" <el-form-item label="知识产权状况" prop="intellectualProperty">
:label-width="route.query.id && formData.isSpecialFund?135:formData.isSpecialFund?125:route.query.id?145:135">
<el-select v-model="formData.intellectualProperty" placeholder="请选择知识产权状况" clearable filterable> <el-select v-model="formData.intellectualProperty" placeholder="请选择知识产权状况" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('intellectual_property')" v-for="item in cacheStore.getDict('intellectual_property')"
@@ -178,10 +178,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="route.query.id && formData.isSpecialFund?24:formData.isSpecialFund?16:24" <el-col :span="12" style="margin-bottom: -18px">
style="margin-bottom: -18px"> <el-form-item label="成果形式" prop="resultForm">
<el-form-item label="预期成果形式" prop="resultForm"
:label-width="route.query.id && formData.isSpecialFund?125:formData.isSpecialFund?145:125">
<el-select v-model="formData.resultForm" placeholder="请选择预期成果形式" clearable filterable multiple> <el-select v-model="formData.resultForm" placeholder="请选择预期成果形式" clearable filterable multiple>
<el-option <el-option
v-for="item in cacheStore.getDict('result_form')" v-for="item in cacheStore.getDict('result_form')"
@@ -192,62 +190,62 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row gutter="15"> <el-row gutter="14">
<el-col :span="24"> <el-col :span="24">
<baseTitle title="预期知识产权"></baseTitle> <baseTitle title="预期知识产权"></baseTitle>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="发明专利(项)" prop="inventionPatent" label-width="125"> <el-form-item label="发明专利(项)" prop="inventionPatent" label-width="105">
<el-input-number v-model="formData.inventionPatent" placeholder="请输入发明专利数量" :controls="false"/> <el-input-number v-model="formData.inventionPatent" placeholder="请输入发明专利数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="实用性新型专利(项)" prop="newPatent" label-width="145"> <el-form-item label="新型专利(项)" prop="newPatent">
<el-input-number v-model="formData.newPatent" placeholder="请输入实用性新型专利数量" :controls="false"/> <el-input-number v-model="formData.newPatent" placeholder="请输入实用性新型专利数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="软件著作权(项)" prop="softwareCopyright" label-width="135"> <el-form-item label="软件著作权(项)" prop="softwareCopyright">
<el-input-number v-model="formData.softwareCopyright" placeholder="请输入软件著作权数量" :controls="false"/> <el-input-number v-model="formData.softwareCopyright" placeholder="请输入软件著作权数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="著作权(项)" prop="copyright" label-width="125"> <el-form-item label="著作权(项)" prop="copyright">
<el-input-number v-model="formData.copyright" placeholder="请输入著作权数量" :controls="false"/> <el-input-number v-model="formData.copyright" placeholder="请输入著作权数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="其他(项)" prop="other" label-width="145"> <el-form-item label="其他(项)" prop="other" label-width="105">
<el-input-number v-model="formData.other" placeholder="请输入其他数量" :controls="false"/> <el-input-number v-model="formData.other" placeholder="请输入其他数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<el-form-item label="经济预算(元)" prop="economicEstimate" label-width="135"> <el-form-item label="经济预算(元)" prop="economicEstimate">
<el-input-number v-model="formData.economicEstimate" placeholder="请输入经济预算数量" :controls="false"/> <el-input-number v-model="formData.economicEstimate" placeholder="请输入经济预算数量" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="16" v-if="formData.isSpecialFund"> <el-col :span="12" v-if="formData.isSpecialFund">
<el-form-item label="其中申请公司总部科技创新专项资金(元)" prop="specialFundAmount"> <el-form-item label="其中申请公司总部科技创新专项资金(元)" prop="specialFundAmount">
<el-input-number v-model="formData.specialFundAmount" placeholder="请输入专项资金" :controls="false"/> <el-input-number v-model="formData.specialFundAmount" placeholder="请输入专项资金" :controls="false"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> </el-row>
<el-form-item label="现有业务描述" prop="serviceDescription" label-width="125"> <el-row gutter="14">
<el-col :span="12">
<el-form-item label="现有业务描述" prop="serviceDescription">
<el-input v-model="formData.serviceDescription" placeholder="请输入现有业务描述" rows="4" type="textarea" <el-input v-model="formData.serviceDescription" placeholder="请输入现有业务描述" rows="4" type="textarea"
clearable></el-input> clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="12">
<el-form-item label="研发项目关键内容描述" prop="contentDescription" label-width="125"> <el-form-item label="研发项目关键内容描述" prop="contentDescription">
<el-input v-model="formData.contentDescription" placeholder="请输入研发项目关键内容描述" rows="4" type="textarea" <el-input v-model="formData.contentDescription" placeholder="请输入研发项目关键内容描述" rows="4" type="textarea"
clearable></el-input> clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="分管领导" <el-form-item label="分管领导" label-width="120">
label-width="125">
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowOptionalChargeLeadershipPicker"> <el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowOptionalChargeLeadershipPicker">
{{ optionalChargeLeadershipList.length !== 0 ? '更改' : '请选择' }} {{ optionalChargeLeadershipList.length !== 0 ? '更改' : '请选择' }}
</el-button> </el-button>
@@ -461,7 +459,7 @@ const handleSubmit = debounce(async (instance) => {
otherFileList.value.forEach(item => { otherFileList.value.forEach(item => {
otherFiles.push(getFileParam(item)) otherFiles.push(getFileParam(item))
}) })
formData.value.optionalChargeLeadership=optionalChargeLeadershipList.value formData.value.optionalChargeLeadership = optionalChargeLeadershipList.value
if (formData.value.singleFile !== undefined) { if (formData.value.singleFile !== undefined) {
formData.value.singleFile = getFileParam(formData.value.singleFile) formData.value.singleFile = getFileParam(formData.value.singleFile)
} }
@@ -515,7 +513,7 @@ const handleResubmit = debounce((instance) => {
otherFiles.push(getFileParam(item)) otherFiles.push(getFileParam(item))
}) })
} }
formData.value.optionalChargeLeadership=optionalChargeLeadershipList.value formData.value.optionalChargeLeadership = optionalChargeLeadershipList.value
if (formData.value.isSpecialFund && formData.value.specialFund === null) { if (formData.value.isSpecialFund && formData.value.specialFund === null) {
formData.value.specialFund = getFundName(formData.value.specialFundId) formData.value.specialFund = getFundName(formData.value.specialFundId)
} }

View File

@@ -19,7 +19,7 @@
v-model:value="auditOpinion"/> v-model:value="auditOpinion"/>
</template> </template>
</steps> </steps>
<opinion v-if="summaryData.taskId" :formData="summaryData.formData" :taskId="summaryData.taskId" <opinion v-if="summaryData.taskId" :formData="summaryData.formData" :taskId="summaryData.taskId" :taskUserOptionList="summaryData.taskUserOptionList"
v-model:value="auditOpinion"></opinion> v-model:value="auditOpinion"></opinion>
</template> </template>

View File

@@ -12,6 +12,7 @@ import fvSelect from '@/fvcomponents/fvSelect/index.vue'
import {toThousands} from '@/utils/changePrice.js' import {toThousands} from '@/utils/changePrice.js'
import {switchAttachmentState} from "@/api/project-manage/attachment"; import {switchAttachmentState} from "@/api/project-manage/attachment";
import {ElMessageBox} from "element-plus"; import {ElMessageBox} from "element-plus";
import { getSubCompOpt } from '@/api/user/user.js';
const router = useRouter() const router = useRouter()
const shortcuts = [ const shortcuts = [
@@ -43,7 +44,19 @@ const shortcuts = [
}, },
}, },
] ]
const searchConfig = reactive([ const searchConfig = ref([
{
label: '征集公司',
prop: 'affiliatedCompanyId',
component: 'el-tree-select',
props: {
placeholder: '请输入征集公司查询',
clearable: true,
data: [],
filterable: true,
checkStrictly: true
}
},
{ {
label: '项目名称', label: '项目名称',
prop: 'projectName', prop: 'projectName',
@@ -346,4 +359,10 @@ const handleOpenUpload=(row,flag)=>{
}) })
}) })
} }
const init = async () => {
const res = await getSubCompOpt()
searchConfig.value.find(item=>item.prop == 'affiliatedCompanyId').props.data = res.data
}
init()
</script> </script>

View File

@@ -49,7 +49,7 @@
</template> </template>
</steps> </steps>
<div style="width: 100%;height: 30px"></div> <div style="width: 100%;height: 30px"></div>
<opinion v-if="detailData.taskId" :formData="detailData.formData" :taskId="detailData.taskId" <opinion v-if="detailData.taskId" :formData="detailData.formData" :taskId="detailData.taskId" :taskUserOptionList="detailData.taskUserOptionList"
v-model:value="auditOpinion"/> v-model:value="auditOpinion"/>
</template> </template>

View File

@@ -10,6 +10,7 @@
<script setup lang="jsx"> <script setup lang="jsx">
import fvSelect from '@/fvcomponents/fvSelect/index.vue' import fvSelect from '@/fvcomponents/fvSelect/index.vue'
import {toThousands} from '@/utils/changePrice.js' import {toThousands} from '@/utils/changePrice.js'
import { getSubCompOpt } from '@/api/user/user.js';
const router = useRouter() const router = useRouter()
const shortcuts = [ const shortcuts = [
@@ -41,7 +42,19 @@ const shortcuts = [
}, },
}, },
] ]
const searchConfig = reactive([ const searchConfig = ref([
{
label: '征集公司',
prop: 'affiliatedCompanyId',
component: 'el-tree-select',
props: {
placeholder: '请输入征集公司查询',
clearable: true,
data: [],
filterable: true,
checkStrictly: true
}
},
{ {
label: '项目名称', label: '项目名称',
prop: 'projectName', prop: 'projectName',
@@ -400,5 +413,10 @@ const handlePhaseChangeEdit = (row) => {
} }
}) })
} }
const init = async () => {
const res = await getSubCompOpt()
searchConfig.value.find(item=>item.prop == 'affiliatedCompanyId').props.data = res.data
}
init()
</script> </script>

View File

@@ -5,7 +5,7 @@
<div style="color: #606266;font-size: 14px;height:25px;"><span style="display:inline-block;text-align: right;margin-right: 14px">抄送人</span>{{copyName?copyName:'--'}}</div> <div style="color: #606266;font-size: 14px;height:25px;"><span style="display:inline-block;text-align: right;margin-right: 14px">抄送人</span>{{copyName?copyName:'--'}}</div>
<ApprovalDetail :formData="summaryData.formData" :data="summaryData" type="phase" <ApprovalDetail :formData="summaryData.formData" :data="summaryData" type="phase"
:processViewer="summaryProcessViewer" :loading="loading" :fileListShow="fileListShow" v-model:value="auditOpinion"/> :processViewer="summaryProcessViewer" :loading="loading" :fileListShow="fileListShow" v-model:value="auditOpinion"/>
<opinion v-if="summaryData.taskId" :formData="summaryData.formData" :taskId="summaryData.taskId" v-model:value="auditOpinion"></opinion> <opinion v-if="summaryData.taskId" :formData="summaryData.formData" :taskId="summaryData.taskId" :taskUserOptionList="summaryData.taskUserOptionList" v-model:value="auditOpinion"></opinion>
</template> </template>
<script setup lang="jsx"> <script setup lang="jsx">

View File

@@ -10,6 +10,7 @@
<script setup lang="jsx"> <script setup lang="jsx">
import fvSelect from '@/fvcomponents/fvSelect/index.vue' import fvSelect from '@/fvcomponents/fvSelect/index.vue'
import {toThousands} from '@/utils/changePrice.js' import {toThousands} from '@/utils/changePrice.js'
import { getSubCompOpt } from '@/api/user/user.js';
const router = useRouter() const router = useRouter()
const shortcuts = [ const shortcuts = [
{ {
@@ -40,7 +41,19 @@ const shortcuts = [
}, },
}, },
] ]
const searchConfig = reactive([ const searchConfig = ref([
{
label: '征集公司',
prop: 'affiliatedCompanyId',
component: 'el-tree-select',
props: {
placeholder: '请输入征集公司查询',
clearable: true,
data: [],
filterable: true,
checkStrictly: true
}
},
{ {
label: '项目名称', label: '项目名称',
prop: 'projectName', prop: 'projectName',
@@ -314,5 +327,10 @@ const handleApply = (row) => {
} }
}) })
} }
const init = async () => {
const res = await getSubCompOpt()
searchConfig.value.find(item=>item.prop == 'affiliatedCompanyId').props.data = res.data
}
init()
</script> </script>

View File

@@ -1,8 +1,16 @@
<template> <template>
<!-- <baseTitle title="审核意见"></baseTitle>--> <!-- <baseTitle title="审核意见"></baseTitle>-->
<!-- <fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>--> <!-- <fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>-->
<div class="oper-page-btn"> <div class="oper-page-btn" style="display: flex">
<el-button type="danger" @click="handleReject">驳回</el-button> <el-select v-if="taskUserOptionList?.length>0" v-model="backNode" placeholder="请选择退回节点" clearable style="width: 150px;margin-right: 10px">
<el-option
v-for="item in taskUserOptionList"
:key="item.nodeId"
:label="item.nodeName + (item.userInfo ? ':' + item.userInfo.name : '')"
:value="item.nodeId">
</el-option>
</el-select>
<el-button type="danger" @click="rollbackHandler">驳回</el-button>
<el-button color="#DED0B2" @click="handleAgree">同意</el-button> <el-button color="#DED0B2" @click="handleAgree">同意</el-button>
</div> </div>
</template> </template>
@@ -27,9 +35,15 @@ const props = defineProps({
value: { value: {
type: String, type: String,
default: '' default: ''
},
//退回节点选择框数据
taskUserOptionList: {
type: Array,
default: []
} }
}) })
const backNode = ref('')
const form = ref() const form = ref()
const schema = computed(() => { const schema = computed(() => {
return [ return [
@@ -146,6 +160,35 @@ const handleReject = async () => {
// back() // back()
} }
//回退节点
const rollbackHandler = async () => {
// const values = form.value.getValues()
if (!_value.value) {
ElNotification({
title: '提示',
message: '请填写审核意见',
type: 'warning'
})
return
}
const params = {
taskId: props.taskId,
// ...values
auditOpinion: _value.value,
rollBackId: backNode.value
}
// console.log('params', params)
const res = await rejectTask(params)
ElNotification({
title: '提示',
message: res.msg,
type: res.code === 1000 ? 'success' : 'error'
})
if (res.code === 1000) {
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
back()
}
}
const handleAgree = async () => { const handleAgree = async () => {
// const values = form.value.getValues() // const values = form.value.getValues()
const params = { const params = {

View File

@@ -85,7 +85,7 @@
</div> </div>
</div> </div>
</el-form> </el-form>
<opinion-moblie v-if="fundData.taskId" :formData="formData" :taskId="fundData.taskId" <opinion-moblie v-if="fundData.taskId" :formData="formData" :taskId="fundData.taskId" :taskUserOptionList="fundData.taskUserOptionList"
v-model:value="formData.auditOpinion"></opinion-moblie> v-model:value="formData.auditOpinion"></opinion-moblie>
<file-preview ref="filePreviewRef" :fullscreen="true" v-if="filePreviewShow" :fileName="filePreviewParam.fileName" :fileUrl="filePreviewParam.fileUrl" <file-preview ref="filePreviewRef" :fullscreen="true" v-if="filePreviewShow" :fileName="filePreviewParam.fileName" :fileUrl="filePreviewParam.fileUrl"
:fileType="filePreviewParam.fileType"/> :fileType="filePreviewParam.fileType"/>

View File

@@ -46,7 +46,7 @@
<!-- :formData="detailData.formData"/>--> <!-- :formData="detailData.formData"/>-->
</template> </template>
</StepsMoblie> </StepsMoblie>
<opinion-moblie v-if="detailData.taskId" :formData="detailData.formData" :taskId="detailData.taskId" <opinion-moblie v-if="detailData.taskId" :formData="detailData.formData" :taskId="detailData.taskId" :taskUserOptionList="detailData.taskUserOptionList"
v-model:value="auditOpinion"/> v-model:value="auditOpinion"/>
</div> </div>
</template> </template>

View File

@@ -7,6 +7,7 @@
<ApprovalDetailMoblie :formData="summaryData.formData" :data="summaryData" type="phase" <ApprovalDetailMoblie :formData="summaryData.formData" :data="summaryData" type="phase"
:processViewer="summaryProcessViewer" :loading="loading" :fileListShow="fileListShow" v-model:value="auditOpinion"/> :processViewer="summaryProcessViewer" :loading="loading" :fileListShow="fileListShow" v-model:value="auditOpinion"/>
<opinion-moblie v-if="summaryData.taskId" :formData="summaryData.formData" :taskId="summaryData.taskId" <opinion-moblie v-if="summaryData.taskId" :formData="summaryData.formData" :taskId="summaryData.taskId"
:taskUserOptionList="summaryData.taskUserOptionList"
v-model:value="auditOpinion"/> v-model:value="auditOpinion"/>
</div> </div>
</template> </template>