Merge pull request 'fix : 修复移动端详情排版' (#653) from dd into master
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/653
This commit is contained in:
@@ -548,12 +548,6 @@ watchEffect(() => {
|
|||||||
Object.keys(props.formData).length && (form.value?.setValues(props.formData))
|
Object.keys(props.formData).length && (form.value?.setValues(props.formData))
|
||||||
})
|
})
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
// if (props.formData.mode == 'view' && props.type == 'execute') {
|
|
||||||
// handleSearchImplementationFileList()
|
|
||||||
// getTagsOption()
|
|
||||||
// }
|
|
||||||
})
|
|
||||||
|
|
||||||
if (props.formData.mode == 'view' && props.type == 'execute') {
|
if (props.formData.mode == 'view' && props.type == 'execute') {
|
||||||
handleSearchImplementationFileList()
|
handleSearchImplementationFileList()
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
<baseTitle title="需求征集信息" v-if="type!=='singleDetail'"></baseTitle>
|
<baseTitle title="需求征集信息" v-if="type!=='singleDetail'"></baseTitle>
|
||||||
<el-form :model="formData">
|
<el-form :model="formData">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6" v-if="type==='singleDetail'">
|
<!-- v-if="type==='singleDetail'"-->
|
||||||
|
<el-col :span="6">
|
||||||
<el-form-item label="征集名称">
|
<el-form-item label="征集名称">
|
||||||
<span>{{ formData.requirementName }}</span>
|
<span>{{ formData.requirementName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -33,17 +34,24 @@
|
|||||||
</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="6" style="margin-bottom: -15px">
|
||||||
<baseTitle title="征集说明"></baseTitle>
|
<el-form-item label="征集说明">
|
||||||
<el-form-item>
|
<div v-if="formData.collectExplain" v-html="formData.collectExplain">
|
||||||
<el-card style="width: 100%">
|
</div>
|
||||||
<div v-html="formData.collectExplain">
|
<div v-else>--</div>
|
||||||
</div>
|
|
||||||
</el-card>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<baseTitle v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" title="附件列表"> </baseTitle>
|
<!-- <el-col :span="24" style="margin-top: -15px;margin-bottom: -15px">-->
|
||||||
|
<!-- <baseTitle title="征集说明"></baseTitle>-->
|
||||||
|
<!-- <el-form-item>-->
|
||||||
|
<!-- <el-card style="width: 100%">-->
|
||||||
|
<!-- <div v-html="formData.collectExplain">-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </el-card>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
|
<baseTitle v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" title="附件列表"> </baseTitle>
|
||||||
<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"/>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {Loading, Close, CircleCheckFilled, MoreFilled} from '@element-plus/icons-vue'
|
import {Loading, Close, CircleCheckFilled, MoreFilled,RefreshLeft} from '@element-plus/icons-vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
row: {
|
row: {
|
||||||
@@ -72,6 +72,10 @@ const initUser = (user) => {
|
|||||||
user["icon"] = MoreFilled
|
user["icon"] = MoreFilled
|
||||||
user["color"] = "#c0c4cc"
|
user["color"] = "#c0c4cc"
|
||||||
}
|
}
|
||||||
|
if (state === 'ROLLBACK') {
|
||||||
|
user["icon"] = RefreshLeft
|
||||||
|
user["color"] = "#f78f5f"
|
||||||
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -581,6 +581,7 @@ onMounted(async () => {
|
|||||||
//justify-content: space-between;
|
//justify-content: space-between;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
padding: 0 30px 0 15px;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|||||||
@@ -16,10 +16,10 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button @click="handleSearch" color="#DED0B2">搜索</el-button>
|
<el-button @click="handleSearchImplementationFileList" color="#DED0B2">搜索</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<fvTable style="width: 100%;min-height:162px;max-height: 162px" v-if="showAttachmentTable" height="162" :tableConfig="tableConfig"
|
<fvTable style="width: 100%;min-height:162px;max-height: 162px" v-if="showAttachmentTable" height="162" :tableConfig="executeTableConfig"
|
||||||
:data="otherAttachmentList" :isSettingCol="false" :pagination="false">
|
:data="otherAttachmentList" :isSettingCol="false" :pagination="false">
|
||||||
<template #empty>
|
<template #empty>
|
||||||
<el-empty :image-size="55" description="暂无数据" style="padding: 0"/>
|
<el-empty :image-size="55" description="暂无数据" style="padding: 0"/>
|
||||||
@@ -80,7 +80,19 @@ import {searchImplementationFileList} from "@/api/project-manage/attachment";
|
|||||||
import {getTags} from "@/api/project-manage";
|
import {getTags} from "@/api/project-manage";
|
||||||
|
|
||||||
|
|
||||||
const tableConfig = reactive({
|
const filePreviewParam = ref({
|
||||||
|
fileUrl: '',
|
||||||
|
fileName: '',
|
||||||
|
fileType: 'pdf'
|
||||||
|
})
|
||||||
|
const filePreviewShow = ref(false)
|
||||||
|
const attachmentParam = reactive({
|
||||||
|
tag: ''
|
||||||
|
})
|
||||||
|
|
||||||
|
const tagsOption = ref([])
|
||||||
|
|
||||||
|
const executeTableConfig = reactive({
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
prop: 'index',
|
prop: 'index',
|
||||||
@@ -121,17 +133,6 @@ const tableConfig = reactive({
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
const filePreviewParam = ref({
|
|
||||||
fileUrl: '',
|
|
||||||
fileName: '',
|
|
||||||
fileType: 'pdf'
|
|
||||||
})
|
|
||||||
const filePreviewShow = ref(false)
|
|
||||||
const attachmentParam = reactive({
|
|
||||||
tag: ''
|
|
||||||
})
|
|
||||||
|
|
||||||
const tagsOption = ref([])
|
|
||||||
const changeDiagram = ref(false)
|
const changeDiagram = ref(false)
|
||||||
const showAttachmentTable = ref(true)
|
const showAttachmentTable = ref(true)
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@@ -238,6 +239,25 @@ const editSingleTableConfig = reactive({
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
let preProcess = {
|
||||||
|
label: '前置流程',
|
||||||
|
prop: 'preProcess',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.preProcess ? props.formData.preProcess.map((item, index) => {
|
||||||
|
return <span><a target="_blank" style={{color: '#409EFF', cursor: 'pointer'}}
|
||||||
|
href={props.formData.preProcessBaseUrl + item.requestId}>{item.requestName} {index != (props.formData.preProcess.length - 1) ?
|
||||||
|
<span>,</span> : ''}</a></span>
|
||||||
|
}) : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
const schema = computed(() => {
|
const schema = computed(() => {
|
||||||
let arr
|
let arr
|
||||||
if (props.type == 'approval') {
|
if (props.type == 'approval') {
|
||||||
@@ -277,75 +297,111 @@ const schema = computed(() => {
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
label: '部门分管领导',
|
||||||
|
prop: 'optionalChargeLeadership',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.optionalChargeLeadership ? props.formData.optionalChargeLeadership.map(item => {
|
||||||
|
return <span>{item.name} </span>
|
||||||
|
}) : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
if (props.preProcessShow == 'EDIT') {
|
||||||
|
preProcess = {
|
||||||
label: '前置流程',
|
label: '前置流程',
|
||||||
prop: 'preProcess',
|
prop: 'preProcess',
|
||||||
colProps: {
|
colProps: {
|
||||||
span: 24
|
span: 24
|
||||||
},
|
},
|
||||||
labelWidth:'left',
|
labelWidth: 'left',
|
||||||
component: () => (
|
component: () => (
|
||||||
<div>
|
<div>
|
||||||
{
|
{
|
||||||
props.formData.preProcess ? props.formData.preProcess.map(item => {
|
<select-pre-process formData={props.formData}/>
|
||||||
return <span><a target="_blank" style={{color: '#409EFF', cursor: 'pointer'}}
|
|
||||||
href={props.formData.preProcessBaseUrl + item.requestId}>{item.requestName}</a> </span>
|
|
||||||
}) : <span>{'--'}</span>
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
arr.push(preProcess)
|
||||||
|
arr.push({
|
||||||
|
label: '项目立项附件',
|
||||||
|
prop: 'singleFile',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
},
|
},
|
||||||
{
|
labelWidth: 'left',
|
||||||
label: '项目立项附件',
|
component: () => {
|
||||||
prop: 'singleFile',
|
let singleFileArray = [props.formData.singleFile]
|
||||||
colProps: {
|
return props.formData.singleFile ? <fvTable style="width: 100%;max-height: 80px;" height="80"
|
||||||
span: 24
|
tableConfig={editSingleTableConfig}
|
||||||
},
|
data={singleFileArray} isSettingCol={false} pagination={false}>
|
||||||
labelWidth:'left',
|
</fvTable>
|
||||||
component: () => {
|
: <span>--</span>
|
||||||
let singleFileArray = [props.formData.singleFile]
|
}
|
||||||
return <fvTable style="width: 100%;max-height: 80px;" height="80"
|
})
|
||||||
tableConfig={editSingleTableConfig}
|
|
||||||
data={singleFileArray} isSettingCol={false} pagination={false}>
|
|
||||||
</fvTable>
|
|
||||||
}
|
|
||||||
},
|
|
||||||
]
|
|
||||||
} else if (props.type == 'execute') {
|
} else if (props.type == 'execute') {
|
||||||
arr = [
|
arr = []
|
||||||
{
|
if (props.preProcessShow == 'EDIT') {
|
||||||
|
preProcess = {
|
||||||
label: '前置流程',
|
label: '前置流程',
|
||||||
prop: 'preProcess',
|
prop: 'preProcess',
|
||||||
colProps: {
|
colProps: {
|
||||||
span: 24
|
span: 24
|
||||||
},
|
},
|
||||||
labelWidth:'left',
|
labelWidth: 'left',
|
||||||
component: () => (
|
component: () => (
|
||||||
<div>
|
<div>
|
||||||
{
|
{
|
||||||
props.formData.preProcess ? props.formData.preProcess.map(item => {
|
<select-pre-process formData={props.formData}/>
|
||||||
return <span><a target="_blank" style={{color: '#409EFF', cursor: 'pointer'}}
|
|
||||||
href={props.formData.preProcessBaseUrl + item.requestId}>{item.requestName}</a> </span>
|
|
||||||
}) : <span>{'--'}</span>
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
},
|
}
|
||||||
{
|
}
|
||||||
label: '项目验收附件',
|
arr.push(preProcess)
|
||||||
prop: 'singleFile',
|
arr.push(
|
||||||
colProps: {
|
{
|
||||||
span: 24
|
label: '部门分管领导',
|
||||||
|
prop: 'optionalChargeLeadership',
|
||||||
|
colProps: {
|
||||||
|
span: 24
|
||||||
|
},
|
||||||
|
labelWidth: 'left',
|
||||||
|
component: () => (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.optionalChargeLeadership ? props.formData.optionalChargeLeadership.map(item => {
|
||||||
|
return <span>{item.name} </span>
|
||||||
|
}) : <span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
},
|
},
|
||||||
labelWidth:'left',
|
{
|
||||||
component: () => {
|
label: '项目验收附件',
|
||||||
let singleFileArray = [props.formData.singleFile]
|
prop: 'singleFile',
|
||||||
return <fvTable style="width: 100%;max-height: 80px;" height="80"
|
colProps: {
|
||||||
tableConfig={editSingleTableConfig}
|
span: 24
|
||||||
data={singleFileArray} isSettingCol={false} pagination={false}>
|
},
|
||||||
</fvTable>
|
labelWidth: 'left',
|
||||||
}
|
component: () => {
|
||||||
},
|
let singleFileArray = [props.formData.singleFile]
|
||||||
]
|
return props.formData.singleFile ? <fvTable style="width: 100%;max-height: 80px;" height="80"
|
||||||
|
tableConfig={editSingleTableConfig}
|
||||||
|
data={singleFileArray} isSettingCol={false} pagination={false}>
|
||||||
|
</fvTable>
|
||||||
|
: <span>--</span>
|
||||||
|
}
|
||||||
|
})
|
||||||
} else if (props.type == 'archivist') {
|
} else if (props.type == 'archivist') {
|
||||||
arr = [
|
arr = [
|
||||||
{
|
{
|
||||||
@@ -354,13 +410,14 @@ const schema = computed(() => {
|
|||||||
colProps: {
|
colProps: {
|
||||||
span: 24
|
span: 24
|
||||||
},
|
},
|
||||||
labelWidth:'left',
|
labelWidth: 'left',
|
||||||
component: () => {
|
component: () => {
|
||||||
let singleFileArray = [props.formData.singleFile]
|
let singleFileArray = [props.formData.singleFile]
|
||||||
return <fvTable style="width: 100%;max-height: 80px;" height="80"
|
return props.formData.singleFile ? <fvTable style="width: 100%;max-height: 80px;" height="80"
|
||||||
tableConfig={editSingleTableConfig}
|
tableConfig={editSingleTableConfig}
|
||||||
data={singleFileArray} isSettingCol={false} pagination={false}>
|
data={singleFileArray} isSettingCol={false} pagination={false}>
|
||||||
</fvTable>
|
</fvTable>
|
||||||
|
: <span>--</span>
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -421,7 +478,7 @@ const getTagsOption = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const handleSearch = () => {
|
const handleSearchImplementationFileList = () => {
|
||||||
let params = {
|
let params = {
|
||||||
targetId: route.query.projectId,
|
targetId: route.query.projectId,
|
||||||
targetState: "40"
|
targetState: "40"
|
||||||
@@ -473,14 +530,14 @@ const handleDownload = (row) => {
|
|||||||
loading.close()
|
loading.close()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if(props.type&&props.type==='execute'){
|
|
||||||
handleSearch()
|
|
||||||
getTagsOption()
|
|
||||||
}
|
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
Object.keys(props.formData).length && (form.value?.setValues(props.formData))
|
Object.keys(props.formData).length && (form.value?.setValues(props.formData))
|
||||||
})
|
})
|
||||||
|
if (props.formData.mode == 'view' && props.type == 'execute') {
|
||||||
|
handleSearchImplementationFileList()
|
||||||
|
getTagsOption()
|
||||||
|
}
|
||||||
watch(() => props.loading, (newVal) => {
|
watch(() => props.loading, (newVal) => {
|
||||||
props.loading = newVal
|
props.loading = newVal
|
||||||
}, {deep: true})
|
}, {deep: true})
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-loading="loading">
|
<div v-loading="loading">
|
||||||
<el-form :model="formData" label-width="auto">
|
<el-form :model="formData" >
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24" v-if="type==='singleDetail'">
|
<el-col :span="24" v-if="type==='singleDetail'">
|
||||||
<el-form-item label="征集名称">
|
<el-form-item label="征集名称">
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
</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="需求上报截止时间">
|
||||||
<span>{{ formData.deadline }}</span>
|
<span>{{ formData.deadline }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -33,22 +33,29 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<baseTitle title="征集说明"></baseTitle>
|
<el-col :span="6" style="margin-bottom: -15px">
|
||||||
<el-col :span="24">
|
<el-form-item label="征集说明">
|
||||||
<el-form-item>
|
<div v-if="formData.collectExplain" v-html="formData.collectExplain">
|
||||||
<el-card style="width: 100%">
|
</div>
|
||||||
<div v-html="formData.collectExplain">
|
<div v-else>--</div>
|
||||||
</div>
|
|
||||||
</el-card>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<baseTitle v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" title="附件列表"></baseTitle>
|
<!-- <el-col :span="24" style="margin-bottom: -15px">-->
|
||||||
|
<!-- <baseTitle title="征集说明"></baseTitle>-->
|
||||||
|
<!-- <el-form-item>-->
|
||||||
|
<!-- <el-card style="width: 100%">-->
|
||||||
|
<!-- <div v-html="formData.collectExplain">-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </el-card>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
|
<baseTitle v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" title="附件列表"></baseTitle>
|
||||||
<file-component title="" tag="需求征集" :fullscreen="true"
|
<file-component title="" tag="需求征集" :fullscreen="true"
|
||||||
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">
|
||||||
@@ -62,7 +69,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">
|
||||||
|
|||||||
@@ -8,13 +8,6 @@
|
|||||||
<span>{{ localFormData.projectName }}</span>
|
<span>{{ localFormData.projectName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="专项资金名称" prop="specialFund" v-if="localFormData.isSpecialFund">
|
|
||||||
<span>{{
|
|
||||||
localFormData.specialFundId === 0 ? localFormData.specialFund : changeName(fundOption, localFormData.specialFundId)
|
|
||||||
}}</span>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="开始时间" prop="startTime">
|
<el-form-item label="开始时间" prop="startTime">
|
||||||
<span>{{ localFormData.startTime }}</span>
|
<span>{{ localFormData.startTime }}</span>
|
||||||
@@ -40,26 +33,28 @@
|
|||||||
<span>{{ filterDict(cacheStore.getDict('invest_type'), localFormData.investmentType) }}</span>
|
<span>{{ filterDict(cacheStore.getDict('invest_type'), localFormData.investmentType) }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="24">-->
|
|
||||||
<!-- <el-form-item label="项目影响" prop="projectImpact">-->
|
|
||||||
<!-- <span>{{ filterDict(cacheStore.getDict('project_impact'), localFormData.projectImpact) }}</span>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<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="24">
|
|
||||||
<el-form-item label="预期成果形式" prop="resultForm">
|
|
||||||
<span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<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="24">
|
||||||
|
<el-form-item label="项目影响" prop="projectImpact">
|
||||||
|
<span>{{ filterDict(cacheStore.getDict('project_impact'), localFormData.projectImpact) }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="经济预算(元)" prop="economicEstimate">
|
||||||
|
<span>{{ toThousands(localFormData.economicEstimate) }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="产学研联合" prop="industryUniversityResearch">
|
<el-form-item label="产学研联合" prop="industryUniversityResearch">
|
||||||
<span>{{
|
<span>{{
|
||||||
@@ -74,6 +69,31 @@
|
|||||||
}}</span>
|
}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="专项资金名称" prop="specialFund" v-if="localFormData.isSpecialFund">
|
||||||
|
<span>{{
|
||||||
|
localFormData.specialFundId === 0 ? localFormData.specialFund : changeName(fundOption, localFormData.specialFundId)
|
||||||
|
}}</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24" v-if="localFormData.isSpecialFund">
|
||||||
|
<el-form-item label="其中申请公司总部科技创新专项资金(元)" prop="specialFundAmount">
|
||||||
|
<span>{{ toThousands(localFormData.specialFundAmount) }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="部门分管领导" prop="optionalChargeLeadership">
|
||||||
|
<span>{{ localFormData.optionalChargeLeadership?.map(item=>item.name).join() }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24" style="margin-top: -15px">
|
||||||
|
<baseTitle title="预期知识产权"></baseTitle>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="预期成果形式" prop="resultForm">
|
||||||
|
<span>{{ filterDict(cacheStore.getDict('result_form'), localFormData.resultForm) }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="知识产权状况" prop="intellectualProperty">
|
<el-form-item label="知识产权状况" prop="intellectualProperty">
|
||||||
<span>{{
|
<span>{{
|
||||||
@@ -82,9 +102,6 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24" style="margin-top: -15px">
|
|
||||||
<baseTitle title="预期知识产权"></baseTitle>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="发明专利(项)" prop="inventionPatent">
|
<el-form-item label="发明专利(项)" prop="inventionPatent">
|
||||||
<span>{{ localFormData.inventionPatent }}</span>
|
<span>{{ localFormData.inventionPatent }}</span>
|
||||||
@@ -110,16 +127,11 @@
|
|||||||
<span>{{ localFormData.other }}</span>
|
<span>{{ localFormData.other }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
</el-row>
|
||||||
|
<el-row gutter="14" >
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="经济预算(元)" prop="economicEstimate">
|
<baseTitle title="项目描述"></baseTitle>
|
||||||
<span>{{ toThousands(localFormData.economicEstimate) }}</span>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="其中申请公司总部科技创新专项资金(元)" prop="specialFundAmount"
|
|
||||||
v-if="localFormData.isSpecialFund">
|
|
||||||
<span>{{ toThousands(localFormData.specialFundAmount) }}</span>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="现有业务描述" prop="serviceDescription">
|
<el-form-item label="现有业务描述" prop="serviceDescription">
|
||||||
@@ -131,7 +143,7 @@
|
|||||||
<span>{{ localFormData.contentDescription }}</span>
|
<span>{{ localFormData.contentDescription }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" style="margin-top: -15px">
|
<el-col :span="24" style="margin-top: -25px">
|
||||||
<baseTitle title="需求上报申请书"></baseTitle>
|
<baseTitle title="需求上报申请书"></baseTitle>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
@@ -158,7 +170,31 @@
|
|||||||
/>
|
/>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" style="margin-top: -15px">
|
<el-col :span="24" style="margin-top: -15px">
|
||||||
<div v-if="data.taskId||data.state==='4'">
|
<div v-if="data.taskId">
|
||||||
|
<baseTitle title="审核意见"></baseTitle>
|
||||||
|
<el-form-item prop="_value">
|
||||||
|
<el-input
|
||||||
|
v-model="_value"
|
||||||
|
:rows="3"
|
||||||
|
type="textarea"
|
||||||
|
placeholder="请输入审核意见"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
<div v-if="data.state==='5'" style="margin-bottom: 15px">
|
||||||
|
<baseTitle title="前置流程"></baseTitle>
|
||||||
|
<div style="display: flex;align-items: center;flex-wrap: wrap;">
|
||||||
|
<div v-for="(item,index) in localFormData.preProcess" :key="item.requestId">
|
||||||
|
<a :href="item.baseUrl" target="_blank"
|
||||||
|
style="color: #2a99ff;cursor: pointer">{{ item.requestName }}<span
|
||||||
|
v-if="index != localFormData.preProcess.length -1">,</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-perm="['annual:plan:approve']" v-if="data.state==='4'">
|
||||||
|
<baseTitle title="前置流程"></baseTitle>
|
||||||
|
<select-pre-process :formData="localFormData"/>
|
||||||
<baseTitle title="审核意见"></baseTitle>
|
<baseTitle title="审核意见"></baseTitle>
|
||||||
<el-form-item prop="_value">
|
<el-form-item prop="_value">
|
||||||
<el-input
|
<el-input
|
||||||
@@ -211,6 +247,7 @@ import FileComponent from "@/components/DetailComponent/FileComponent.vue";
|
|||||||
import {ElNotification} from "element-plus";
|
import {ElNotification} from "element-plus";
|
||||||
import {approvePlan} from "@/api/project-demand/summary";
|
import {approvePlan} from "@/api/project-demand/summary";
|
||||||
|
|
||||||
|
import SelectPreProcess from "@/components/SelectPreProcess.vue";
|
||||||
const emit = defineEmits(['update:value'])
|
const emit = defineEmits(['update:value'])
|
||||||
const tagsViewStore = useTagsView()
|
const tagsViewStore = useTagsView()
|
||||||
const cacheStore = useCacheStore()
|
const cacheStore = useCacheStore()
|
||||||
|
|||||||
Reference in New Issue
Block a user