fix : 修改表格高度,页面左右边距,上传文件不能和标题并排

This commit is contained in:
2024-08-13 17:21:19 +08:00
parent fa054d2a07
commit 38b6299dbf
24 changed files with 305 additions and 197 deletions

View File

@@ -24,7 +24,7 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="其他文件" :label-width="tag==='需求上报'?120:106"> <el-form-item label="其他文件" :label-width="tag==='需求上报'?120:106">
<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: 160px;" v-if="showTable" height="160" :tableConfig="tableConfig"
:data="allFileList" :isSettingCol="false" :pagination="false"> :data="allFileList" :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"/>
@@ -467,3 +467,20 @@ defineExpose({
height: 300px !important; height: 300px !important;
} }
</style> </style>
<style lang="scss" scoped>
:deep(.el-table__header) {
.is-leaf:first-child {
.cell {
margin-left: -22px !important;
}
}
}
:deep(.el-table__body) {
.el-table__cell:first-child {
.cell {
margin-left: -11px !important;
}
}
}
</style>

View File

@@ -19,7 +19,7 @@
<el-button @click="handleSearchImplementationFileList" 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" <fvTable style="width: 100%;min-height:160px;max-height: 160px" v-if="showAttachmentTable" height="160"
:tableConfig="executeTableConfig" class="execute-table" :tableConfig="executeTableConfig" class="execute-table"
:data="otherAttachmentList" :isSettingCol="false" :pagination="false"> :data="otherAttachmentList" :isSettingCol="false" :pagination="false">
<template #empty> <template #empty>
@@ -97,7 +97,7 @@ const executeTableConfig = reactive({
prop: 'originalFileName', prop: 'originalFileName',
label: '文件名', label: '文件名',
align: 'center', align: 'center',
width: 700, // width: 700,
currentRender: ({row, index}) => ( currentRender: ({row, index}) => (
<div style="color: #2a99ff;cursor: pointer;" onClick={() => clickToPreview(row)}>{row.originalFileName}</div>) <div style="color: #2a99ff;cursor: pointer;" onClick={() => clickToPreview(row)}>{row.originalFileName}</div>)
}, },
@@ -105,13 +105,13 @@ const executeTableConfig = reactive({
prop: 'tag', prop: 'tag',
label: '标签', label: '标签',
align: 'center', align: 'center',
width: 200, // width: 200,
}, },
{ {
prop: 'size', prop: 'size',
label: '文件大小', label: '文件大小',
align: 'center', align: 'center',
width: 450, // width: 450,
currentRender: ({row, index}) => (parseInt(row.size / 1024) + 'KB') currentRender: ({row, index}) => (parseInt(row.size / 1024) + 'KB')
}, },
{ {
@@ -350,7 +350,24 @@ const schema = computed(() => {
} }
}) })
} else if (props.type == 'execute') { } else if (props.type == 'execute') {
arr = [] arr = [{
label: '部门分管领导',
prop: 'optionalChargeLeadership',
colProps: {
span: 24
},
labelWidth: 'left',
component: () => (
<div>
{
props.formData.optionalChargeLeadership?.length > 0 ? props.formData.optionalChargeLeadership.map(item => {
return <span>{item.name} </span>
}) : <span>{'--'}</span>
}
</div>
)
},]
if (props.preProcessShow == 'EDIT') { if (props.preProcessShow == 'EDIT') {
preProcess = { preProcess = {
label: '前置流程', label: '前置流程',
@@ -370,23 +387,6 @@ const schema = computed(() => {
} }
arr.push(preProcess) arr.push(preProcess)
arr.push( arr.push(
{
label: '部门分管领导',
prop: 'optionalChargeLeadership',
colProps: {
span: 24
},
labelWidth: 'left',
component: () => (
<div>
{
props.formData.optionalChargeLeadership?.length > 0 ? props.formData.optionalChargeLeadership.map(item => {
return <span>{item.name} </span>
}) : <span>{'--'}</span>
}
</div>
)
},
{ {
label: '项目验收附件', label: '项目验收附件',
prop: 'singleFile', prop: 'singleFile',
@@ -591,11 +591,11 @@ watch(() => props.loading, (newVal) => {
} }
} }
//:deep(.el-table__body) { :deep(.el-table__body) {
// .el-table__cell:first-child { .el-table__cell:first-child {
// .cell { .cell {
// margin-left: -13px !important; margin-left: 5px !important;
// } }
// } }
//} }
</style> </style>

View File

@@ -1,5 +1,5 @@
<template> <template>
<div v-loading="loading" :style="type==='singleDetail'?'padding: 0 40px':''"> <div v-loading="loading" :style="type==='singleDetail'?'padding: 0 30px':''">
<baseTitle title="需求征集信息" v-if="type!=='singleDetail'"></baseTitle> <baseTitle title="需求征集信息" v-if="type!=='singleDetail'"></baseTitle>
<el-form :model="formData" > <el-form :model="formData" >
<el-row gutter="20" style="margin-left: 5px"> <el-row gutter="20" style="margin-left: 5px">

View File

@@ -2,7 +2,7 @@
<el-form :label-position="labelAlign"> <el-form :label-position="labelAlign">
<el-form-item :label="title?'其他文件':''" v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" :label-position="labelAlign" :label-width="title?95:''" :style="{marginTop: '10px',marginLeft: tag!=='需求上报'?'15px':'0'}"> <el-form-item :label="title?'其他文件':''" v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" :label-position="labelAlign" :label-width="title?95:''" :style="{marginTop: '10px',marginLeft: tag!=='需求上报'?'15px':'0'}">
<file-upload @getFile="getOtherFile" v-if="fileListShow === 'EDIT'"/> <file-upload @getFile="getOtherFile" v-if="fileListShow === 'EDIT'"/>
<fvTable style="width: 100%;max-height: 162px;" v-if="processViewer" height="162" :tableConfig="tableConfig" <fvTable style="width: 100%;max-height: 160px;" v-if="processViewer" height="160" :tableConfig="tableConfig"
:data="_value" :isSettingCol="false" :pagination="false"> :data="_value" :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"/>
@@ -194,7 +194,7 @@ watch(() => props.processViewer, (newVal) => {
<style scoped lang="scss"> <style scoped lang="scss">
:deep(.el-table--fit ) { :deep(.el-table--fit ) {
height: 162px !important; height: 160px !important;
} }
</style> </style>

View File

@@ -20,7 +20,7 @@
<el-button v-if="uploadState" color="#DED0B2" @click="handleUpload">上传附件</el-button> <el-button v-if="uploadState" color="#DED0B2" @click="handleUpload">上传附件</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" <fvTable style="width: 100%;min-height:160px;max-height: 160px" v-if="showAttachmentTable" height="160"
:tableConfig="executeTableConfig" class="execute-apply-table" :tableConfig="executeTableConfig" class="execute-apply-table"
:data="otherAttachmentList" :isSettingCol="false" :pagination="false"> :data="otherAttachmentList" :isSettingCol="false" :pagination="false">
<template #empty> <template #empty>
@@ -51,8 +51,8 @@
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowProjectPersonTable"> <el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowProjectPersonTable">
{{ projectPersonUserList?.length !== 0 ? '更改' : getProjectPerson(projectPersonUserList) ? '更改' : '请选择' }} {{ projectPersonUserList?.length !== 0 ? '更改' : getProjectPerson(projectPersonUserList) ? '更改' : '请选择' }}
</el-button> </el-button>
<div v-for="item in getProjectPerson(projectPersonUserList)" :key="item.id" style="margin-right: 5px"> <div v-for="(item,index) in getProjectPerson(projectPersonUserList)" :key="item.id" >
{{ item.name }} {{ item.name }}{{index != getProjectPerson(projectPersonUserList)?.length - 1 ? '' : ''}}
</div> </div>
<user-picker :multiple="true" ref="projectPersonUserPicker" title="请选择项目成员" <user-picker :multiple="true" ref="projectPersonUserPicker" title="请选择项目成员"
v-model:value="projectPersonUserList" @ok="projectPersonUserPickerOk"/> v-model:value="projectPersonUserList" @ok="projectPersonUserPickerOk"/>
@@ -66,9 +66,9 @@
optionalChargeLeadershipList?.length !== 0 ? '更改' : getOptionalChargeLeadershipList(optionalChargeLeadershipList) ? '更改' : '请选择' optionalChargeLeadershipList?.length !== 0 ? '更改' : getOptionalChargeLeadershipList(optionalChargeLeadershipList) ? '更改' : '请选择'
}} }}
</el-button> </el-button>
<div v-for="item in getOptionalChargeLeadershipList(optionalChargeLeadershipList)" :key="item.id" <div v-for="(item,index) in getOptionalChargeLeadershipList(optionalChargeLeadershipList)" :key="item.id"
style="margin-right: 5px"> >
{{ item.name }} {{ item.name }}{{index != getProjectPerson(projectPersonUserList)?.length - 1 ? '' : ''}}
</div> </div>
<user-picker :multiple="true" ref="optionalChargeLeadershipPickerRef" title="请选择部门分管领导" <user-picker :multiple="true" ref="optionalChargeLeadershipPickerRef" title="请选择部门分管领导"
v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOk"/> v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOk"/>

View File

@@ -29,7 +29,7 @@
<baseTitle title="关联项目" v-if="!data.taskId"></baseTitle> <baseTitle title="关联项目" v-if="!data.taskId"></baseTitle>
<el-col :span="24" v-if="!data.taskId" > <el-col :span="24" v-if="!data.taskId" >
<el-form-item > <el-form-item >
<fvTable style="width: 100%;max-height:162px" height="162" v-if="showTable" :tableConfig="projectTable" <fvTable style="width: 100%;max-height:160px" height="160" v-if="showTable" :tableConfig="projectTable"
:data="formData.projects" :isSettingCol="false" :pagination="false"> :data="formData.projects" :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"/>
@@ -37,10 +37,10 @@
</fvTable> </fvTable>
</el-form-item> </el-form-item>
</el-col> </el-col>
<baseTitle title="附件列表"></baseTitle> <baseTitle title="附件文件"></baseTitle>
<el-col :span="24"> <el-col :span="24">
<el-form-item> <el-form-item>
<fvTable style="width: 100%;max-height: 162px;" height="162" v-if="showTable" :tableConfig="fileTable" <fvTable style="width: 100%;max-height: 160px;" height="160" v-if="showTable" :tableConfig="fileTable"
:data="formData.files" :isSettingCol="false" :pagination="false"> :data="formData.files" :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"/>

View File

@@ -21,7 +21,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <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>
@@ -50,7 +50,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="研发项目关键内容描述" prop="contentDescription"> <el-form-item label="建设目标描述" prop="contentDescription">
<span style="white-space: pre-wrap">{{ localFormData.contentDescription }}</span> <span style="white-space: pre-wrap">{{ localFormData.contentDescription }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -68,7 +68,7 @@
<!-- </el-form-item>--> <!-- </el-form-item>-->
</el-col> </el-col>
</el-row> </el-row>
<baseTitle title="附件列表" style="margin-bottom: 0"></baseTitle> <baseTitle title="附件文件" style="margin-bottom: 0"></baseTitle>
<el-row gutter="20" style="margin-bottom: -18px;"> <el-row gutter="20" style="margin-bottom: -18px;">
<el-col :span="24"> <el-col :span="24">
<file-component tag="需求上报" <file-component tag="需求上报"

View File

@@ -21,7 +21,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-card style="width: 100%;overflow-y: hidden"> <el-card style="width: 100%;overflow-y: hidden">
<fvTable style="width: 100%;max-height: 300px" v-if="showTable" height="300" :tableConfig="tableConfig" <fvTable style="width: 100%;max-height: 254px" v-if="showTable" height="254" :tableConfig="tableConfig"
:data="fileList" :isSettingCol="false" :pagination="false"> :data="fileList" :isSettingCol="false" :pagination="false">
<template #empty> <template #empty>
<el-empty :image-size="99" description="暂无数据" style="padding: 0"/> <el-empty :image-size="99" description="暂无数据" style="padding: 0"/>
@@ -171,5 +171,7 @@ onActivated(()=>{
</script> </script>
<style scoped> <style scoped>
:deep(.el-table--fit ) {
height: 254px !important;
}
</style> </style>

View File

@@ -16,7 +16,7 @@
<baseTitle title="其他文件"></baseTitle> <baseTitle title="其他文件"></baseTitle>
<el-card style="width: 100%;margin: 15px 0"> <el-card style="width: 100%;margin: 15px 0">
<file-upload @getFile="getFiles"/> <file-upload @getFile="getFiles"/>
<fvTable style="width: 100%;max-height: 162px;height: 162px" height="162" v-if="showTable" :tableConfig="tableConfig" <fvTable style="width: 100%;max-height: 160px;height: 160px" height="160" v-if="showTable" :tableConfig="tableConfig"
:data="fileList" :isSettingCol="false" :pagination="false"> :data="fileList" :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"/>

View File

@@ -201,7 +201,7 @@ const schema = computed(() => {
) )
}, },
{ {
label: '所属业务板块', label: '业务板块',
prop: 'businessSegment', prop: 'businessSegment',
colProps: { colProps: {
span: 6 span: 6
@@ -304,7 +304,7 @@ const schema = computed(() => {
// } // }
// }, // },
{ {
label: '所属专项资金项目', label: '所属专项资金',
prop: 'specialFund', prop: 'specialFund',
colProps: { colProps: {
span: 6 span: 6

View File

@@ -84,7 +84,7 @@
<baseTitle title="附件文件" style="margin-right: 10px"></baseTitle> <baseTitle title="附件文件" style="margin-right: 10px"></baseTitle>
<file-upload v-if="checkFormPrem('fileList')" @getFile="getFile"/> <file-upload v-if="checkFormPrem('fileList')" @getFile="getFile"/>
<div style="margin-right: 50px"> <div style="margin-right: 50px">
<fvTable style="width: 100%;max-height: 162px;" height="162" v-if="showTable" <fvTable style="width: 100%;max-height: 160px;" height="160" v-if="showTable"
:tableConfig="tableConfig" :data="formData.fileList" :tableConfig="tableConfig" :data="formData.fileList"
:isSettingCol="false" :pagination="false" perm="EDIT"> :isSettingCol="false" :pagination="false" perm="EDIT">
<template #empty> <template #empty>
@@ -588,7 +588,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 0 0 40px; padding: 0 0 0 30px;
a { a {
cursor: pointer; cursor: pointer;

View File

@@ -1,5 +1,5 @@
<template> <template>
<baseTitle title="需求征集信息" style="margin-left: 40px"></baseTitle> <baseTitle title="需求征集信息" style="margin-left: 30px"></baseTitle>
<collection-detail :formData="collectData.formData" :data="collectData" type="singleDetail" <collection-detail :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"/>
@@ -117,7 +117,7 @@ onMounted(async () => {
} }
:deep(.el-table--fit ) { :deep(.el-table--fit ) {
height: 162px !important; height: 160px !important;
} }
.detail-block { .detail-block {

View File

@@ -1,6 +1,6 @@
<template> <template>
<div style="padding: 0 10px;"> <div style="padding: 0 10px;">
<baseTitle title="需求征集详情"></baseTitle> <baseTitle title="需求征集信息"></baseTitle>
<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"/>

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class="detail-block" v-loading="loading" :style="{padding:!formData.isSpecialFund?'0 40px':'0 0 0 40px'}"> <div class="detail-block" v-loading="loading" :style="{padding:!formData.isSpecialFund?'0 30px':'0 0 0 30px'}">
<baseTitle title="项目基本信息"></baseTitle> <baseTitle title="项目基本信息"></baseTitle>
<el-form :model="formData" ref="summaryForm" :rules="rules" :label-width="!formData.isSpecialFund?120:160" <el-form :model="formData" ref="summaryForm" :rules="rules" :label-width="!formData.isSpecialFund?120:160"
:scroll-to-error="true"> :scroll-to-error="true">

View File

@@ -1,32 +1,33 @@
<template> <template>
<div style="padding: 0 30px"> <div style="padding: 0 30px">
<baseTitle title="项目基本信息"></baseTitle> <baseTitle title="项目基本信息"></baseTitle>
<fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left" style="margin-left: 15px"></fvForm> <fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left"
<el-form :model="attachment" inline style="margin-left: 15px"> style="margin-left: 15px"></fvForm>
<el-form-item label="标签" prop="tag"> <el-form :model="attachment" inline style="margin-left: 15px">
<el-select v-model="attachment.tag" placeholder="请选择标签" clearable filterable style="width: 300px"> <el-form-item label="标签" prop="tag">
<el-option <el-select v-model="attachment.tag" placeholder="请选择标签" clearable filterable style="width: 300px">
v-for="item in tagsOption" <el-option
:key="item.value" v-for="item in tagsOption"
:label="item.label" :key="item.value"
:value="item.value" :label="item.label"
/> :value="item.value"
</el-select> />
</el-form-item> </el-select>
<el-form-item> </el-form-item>
<el-button @click="handleSearch" color="#DED0B2">搜索</el-button> <el-form-item>
<el-button v-if="uploadState" color="#DED0B2" @click="handleUpload">上传附件</el-button> <el-button @click="handleSearch" color="#DED0B2">搜索</el-button>
</el-form-item> <el-button v-if="uploadState" color="#DED0B2" @click="handleUpload">上传附件</el-button>
</el-form> </el-form-item>
<el-card style="width: 100%"> </el-form>
<fvTable style="width: 100%;max-height: 250px" v-if="showTable" height="250" :tableConfig="tableConfig" <!-- <el-card style="width: 100%" shadow="never">-->
<fvTable style="width: 100%;max-height: 274px" v-if="showTable" height="274" :tableConfig="tableConfig"
:data="otherFileList" :isSettingCol="false" :pagination="false"> :data="otherFileList" :isSettingCol="false" :pagination="false">
<template #empty> <template #empty>
<el-empty :image-size="90" description="暂无数据" style="padding: 0"/> <el-empty :image-size="90" description="暂无数据" style="padding: 0"/>
</template> </template>
</fvTable> </fvTable>
</el-card> <!-- </el-card>-->
</div> </div>
</template> </template>
<script setup lang="jsx"> <script setup lang="jsx">
@@ -39,6 +40,7 @@ import {useCacheStore} from '@/stores/cache.js'
import {toThousands} from '@/utils/changePrice.js' import {toThousands} from '@/utils/changePrice.js'
import {computed, ref} from "vue"; import {computed, ref} from "vue";
const cacheStore = useCacheStore() const cacheStore = useCacheStore()
const route = useRoute() const route = useRoute()
const router = useRouter() const router = useRouter()
@@ -184,7 +186,7 @@ const schema = computed(() => {
<div> <div>
{ {
baseFormData.value?.economicEstimate ? baseFormData.value?.economicEstimate ?
<span>{ toThousands(baseFormData.value?.economicEstimate )}</span> <span>{toThousands(baseFormData.value?.economicEstimate)}</span>
: <span>{'--'}</span> : <span>{'--'}</span>
} }
</div> </div>
@@ -332,7 +334,7 @@ const getTagsOption = () => {
getTags(route.query.id).then(res => { getTags(route.query.id).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
tagsOption.value = res.data tagsOption.value = res.data
}else{ } else {
ElNotification({ ElNotification({
title: '提示', title: '提示',
message: res.msg, message: res.msg,
@@ -362,7 +364,7 @@ const handleSearch = () => {
nextTick(() => { nextTick(() => {
showTable.value = true showTable.value = true
}) })
}else{ } else {
ElNotification({ ElNotification({
title: '提示', title: '提示',
message: res.msg, message: res.msg,
@@ -376,7 +378,7 @@ const handleUpload = () => {
name: 'Implementation/upload', name: 'Implementation/upload',
query: { query: {
projectId: route.query.id, projectId: route.query.id,
type:'list' type: 'list'
} }
}) })
} }
@@ -390,7 +392,7 @@ const handleDownload = (row) => {
}) })
} }
onActivated(()=>{ onActivated(() => {
handleSearch() handleSearch()
getTagsOption() getTagsOption()
}) })
@@ -398,6 +400,21 @@ handleSearch()
getTagsOption() getTagsOption()
</script> </script>
<style scoped> <style scoped lang="scss">
:deep(.el-table__header) {
.is-leaf:first-child {
.cell {
margin-left: -25px !important;
}
}
}
:deep(.el-table__body) {
.el-table__cell:first-child {
.cell {
margin-left: -13px !important;
}
}
}
</style> </style>

View File

@@ -1,7 +1,7 @@
<template> <template>
<baseTitle title="项目基本信息"></baseTitle> <baseTitle title="项目基本信息"></baseTitle>
<fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left" style="margin-left: 15px"></fvForm> <fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left" style="margin-left: 15px"></fvForm>
<fvSearchForm :searchConfig="searchConfig" @search="search" style="margin-left: 15px;"></fvSearchForm> <fvSearchForm :searchConfig="searchConfig" @search="search" style="margin-left: 15px;margin-bottom: -18px"></fvSearchForm>
<fvTable ref="tableIns" :tableConfig="tableConfig"> <fvTable ref="tableIns" :tableConfig="tableConfig">
<template #empty> <template #empty>
<el-empty description="暂无数据"/> <el-empty description="暂无数据"/>
@@ -352,7 +352,7 @@ getBaseInfo()
padding-top: 0; padding-top: 0;
} }
:deep(.el-col-offset-1){ :deep(.el-col-offset-1){
margin-left: 50px; margin-left: 48px;
} }
:deep(.el-date-editor.el-input, .el-date-editor.el-input__wrapper ){ :deep(.el-date-editor.el-input, .el-date-editor.el-input__wrapper ){
width: 100%!important; width: 100%!important;
@@ -360,4 +360,20 @@ getBaseInfo()
:deep(.btn-col){ :deep(.btn-col){
margin-left: -28px; margin-left: -28px;
} }
:deep(.el-table__header) {
.is-leaf:first-child {
.cell {
margin-left: -25px !important;
}
}
}
:deep(.el-table__body) {
.el-table__cell:first-child {
.cell {
margin-left: -13px !important;
}
}
}
</style> </style>

View File

@@ -2,9 +2,9 @@
<div style="padding: 0 30px"> <div style="padding: 0 30px">
<baseTitle title="表格更新"></baseTitle> <baseTitle title="表格更新"></baseTitle>
<el-form :model="tableForm" ref="form"> <el-form :model="tableForm" ref="form">
<el-row gutter="20"> <el-row gutter="30">
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="projectName" label="项目名称" label-width="95"> <el-form-item prop="projectName" label="项目名称" label-width="95">
<span>{{ tableForm.projectName }}</span> <span>{{ tableForm.projectName }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -17,7 +17,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="startTime" label="项目开始时间" > <el-form-item prop="startTime" label="项目开始时间">
<el-date-picker <el-date-picker
v-model="tableForm.startTime" v-model="tableForm.startTime"
type="date" type="date"
@@ -43,7 +43,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item prop="projectDevelopmentWay" label="项目开展方式" style="width: 100%" > <el-form-item prop="projectDevelopmentWay" label="项目开展方式" style="width: 100%">
<el-input v-model="tableForm.projectDevelopmentWay" placeholder="请输入项目开展方式" clearable> <el-input v-model="tableForm.projectDevelopmentWay" placeholder="请输入项目开展方式" clearable>
</el-input> </el-input>
</el-form-item> </el-form-item>
@@ -57,7 +57,7 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="projectCompletionRate" label="完成率(%)" label-width="95"> <el-form-item prop="projectCompletionRate" label="完成率(%)" label-width="95">
<el-input-number v-model="tableForm.projectCompletionRate" placeholder="请输入项目总体完成率" min="0" max="100" <el-input-number v-model="tableForm.projectCompletionRate" placeholder="请输入项目总体完成率" min="0" max="100"
:controls="false" style="width: 200px"> :controls="false">
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -158,7 +158,7 @@ getBaseInfo()
const init = async () => { const init = async () => {
const {code, msg, data} = await searchUpdateLedgerData(route.query.id) const {code, msg, data} = await searchUpdateLedgerData(route.query.id)
tableForm.value = data tableForm.value = data
if(data.projectChargePersonName){ if (data.projectChargePersonName) {
let userObj = { let userObj = {
id: data.projectChargePerson, id: data.projectChargePerson,
name: data.projectChargePersonName, name: data.projectChargePersonName,
@@ -178,6 +178,16 @@ const init = async () => {
init() init()
</script> </script>
<style scoped> <style scoped lang="scss">
:deep(.el-input-number) {
width: 100%;
.el-input__inner {
text-align: left;
}
}
:deep(.el-date-editor--date) {
width: 100%;
}
</style> </style>

View File

@@ -1,12 +1,13 @@
<template> <template>
<div style="padding: 0 30px"> <div style="padding: 0 30px">
<baseTitle title="项目基本信息"></baseTitle> <baseTitle title="项目基本信息"></baseTitle>
<fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left" style="margin-left: 15px"></fvForm> <fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left"
<baseTitle title="项目实施-上传附件" style="margin-bottom: 15px"></baseTitle> style="margin-left: 15px;margin-bottom: -18px"></fvForm>
<baseTitle title="项目实施-上传附件" ></baseTitle>
<el-form :model="formData" ref="tagForm" label-width="auto"> <el-form :model="formData" ref="tagForm" label-width="auto">
<el-form-item label="标签名称" prop="tagName" style="margin-left: 15px;"> <el-form-item label="标签名称" prop="tagName" style="margin-left: 15px;">
<el-input v-model="formData.tagName" placeholder="请输入标签名称" style="width: 300px" v-if="showInput" clearable/> <el-input v-model="formData.tagName" placeholder="请输入标签名称" style="width: 300px" v-if="showInput" clearable/>
<el-select v-model="formData.tagName" placeholder="请选择标签名称" clearable filterable style="width: 300px" v-else> <el-select v-model="formData.tagName" placeholder="请选择标签名称" clearable filterable style="width: 300px;margin-right: 10px" v-else>
<el-option <el-option
v-for="item in tagsOption" v-for="item in tagsOption"
:key="item.value" :key="item.value"
@@ -17,10 +18,8 @@
<el-button type="primary" link @click="changeInput">{{ showInput ? '选择' : '输入' }}</el-button> <el-button type="primary" link @click="changeInput">{{ showInput ? '选择' : '输入' }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="display: flex; align-items: center;margin-top: -5px"> <!-- <baseTitle title="其他文件"></baseTitle>-->
<baseTitle title="其他文件" style="margin-right: 10px;"></baseTitle> <file-upload @getFile="getFile" :disabled="!formData.tagName" :title="!formData.tagName?'请先选择/输入标签!':''"/>
<file-upload @getFile="getFile" :disabled="!formData.tagName" :title="!formData.tagName?'请先选择/输入标签!':''"/>
</div>
<fvTable style="width: 100%;max-height: 300px;" v-if="showTable" height="300" :tableConfig="tableConfig" <fvTable style="width: 100%;max-height: 300px;" v-if="showTable" height="300" :tableConfig="tableConfig"
:data="fileList" :isSettingCol="false" :pagination="false"> :data="fileList" :isSettingCol="false" :pagination="false">
<template #empty> <template #empty>
@@ -45,6 +44,7 @@ import {downloadFile, deleteFile} from "@/api/project-demand";
import {useCacheStore} from '@/stores/cache.js' import {useCacheStore} from '@/stores/cache.js'
import {toThousands} from '@/utils/changePrice.js' import {toThousands} from '@/utils/changePrice.js'
const cacheStore = useCacheStore() const cacheStore = useCacheStore()
const tagsViewStore = useTagsView() const tagsViewStore = useTagsView()
const route = useRoute() const route = useRoute()
@@ -189,7 +189,7 @@ const schema = computed(() => {
<div> <div>
{ {
baseFormData.value?.economicEstimate ? baseFormData.value?.economicEstimate ?
<span>{ toThousands(baseFormData.value?.economicEstimate )}</span> <span>{toThousands(baseFormData.value?.economicEstimate)}</span>
: <span>{'--'}</span> : <span>{'--'}</span>
} }
</div> </div>
@@ -377,14 +377,15 @@ const changeInput = () => {
const getTagsOption = () => { const getTagsOption = () => {
if (!route.query.projectId) return if (!route.query.projectId) return
getTags(route.query.projectId).then(res => { getTags(route.query.projectId).then(res => {
ElNotification({
title: '提示',
message: res.msg,
type: res.code === 1000 ? 'success' : 'error'
})
if (res.code === 1000) { if (res.code === 1000) {
showInput.value = res.data.length === 0; showInput.value = res.data.length === 0;
tagsOption.value = res.data tagsOption.value = res.data
}else{
ElNotification({
title: '提示',
message: res.msg,
type: 'error'
})
} }
}) })
} }
@@ -473,8 +474,24 @@ const handleSubmit = async (instance) => {
getTagsOption() getTagsOption()
</script> </script>
<style scoped> <style scoped lang="scss">
:deep(.el-table--fit ) { :deep(.el-table--fit ) {
height: 300px !important; height: 300px !important;
} }
:deep(.el-table__header) {
.is-leaf:first-child {
.cell {
margin-left: -25px !important;
}
}
}
:deep(.el-table__body) {
.el-table__cell:first-child {
.cell {
margin-left: -13px !important;
}
}
}
</style> </style>

View File

@@ -1,82 +1,83 @@
<template> <template>
<div style="padding: 0 30px "> <div style="padding: 0 30px ">
<baseTitle title="项目基本信息"></baseTitle> <baseTitle title="项目基本信息"></baseTitle>
<fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left" style="margin-left: 15px"></fvForm> <fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left"
<el-form :model="tableForm" ref="form" class="query-form"> style="margin-left: 15px"></fvForm>
<el-table :data="tableForm.tableData"> <el-form :model="tableForm" ref="form">
<el-table-column prop="time" label="时间" min-width="180"> <el-table :data="tableForm.tableData">
<template #default="scope"> <el-table-column prop="time" label="时间" min-width="180">
<el-form-item prop="time" :rules="scope.row.time?'1':rules.time"> <template #default="scope">
<el-date-picker <el-form-item prop="time" :rules="scope.row.time?'1':rules.time">
v-model="scope.row.time" <el-date-picker
type="month" v-model="scope.row.time"
format="YYYY-MM" type="month"
value-format="YYYY-MM" format="YYYY-MM"
placeholder="选择时间" value-format="YYYY-MM"
> placeholder="选择时间"
</el-date-picker> >
</el-form-item> </el-date-picker>
</template> </el-form-item>
</el-table-column> </template>
<el-table-column prop="projectCost" label="项目费用" min-width="220"> </el-table-column>
<template #default="scope"> <el-table-column prop="projectCost" label="项目费用" min-width="220">
<el-form-item prop="projectCost" :rules="scope.row.projectCost?'1':rules.projectCost"> <template #default="scope">
<el-select v-model="scope.row.projectCost" placeholder="请选择费用性质" clearable filterable> <el-form-item prop="projectCost" :rules="scope.row.projectCost?'1':rules.projectCost">
<el-option <el-select v-model="scope.row.projectCost" placeholder="请选择费用性质" clearable filterable style="width: 100%">
v-for="item in cacheStore.getDict('project_cost')" <el-option
:key="item.value" v-for="item in cacheStore.getDict('project_cost')"
:label="item.label" :key="item.value"
:value="item.value" :label="item.label"
/> :value="item.value"
</el-select> />
</el-form-item> </el-select>
</template> </el-form-item>
</el-table-column> </template>
<el-table-column prop="researchStage" label="研发阶段" min-width="220"> </el-table-column>
<template #default="scope"> <el-table-column prop="researchStage" label="研发阶段" min-width="220">
<el-form-item prop="researchStage" :rules="scope.row.researchStage?'1':rules.researchStage"> <template #default="scope">
<el-select v-model="scope.row.researchStage" placeholder="请选择研发阶段" clearable filterable> <el-form-item prop="researchStage" :rules="scope.row.researchStage?'1':rules.researchStage">
<el-option <el-select v-model="scope.row.researchStage" placeholder="请选择研发阶段" clearable filterable>
v-for="item in cacheStore.getDict('fee_stage')" <el-option
:key="item.value" v-for="item in cacheStore.getDict('fee_stage')"
:label="item.label" :key="item.value"
:value="item.value" :label="item.label"
/> :value="item.value"
</el-select> />
</el-form-item> </el-select>
</template> </el-form-item>
</el-table-column> </template>
<el-table-column prop="digest" label="摘要" min-width="220"> </el-table-column>
<template #default="scope"> <el-table-column prop="digest" label="摘要" min-width="220">
<el-form-item prop="digest" :rules="scope.row.digest?'1':rules.digest"> <template #default="scope">
<el-input v-model="scope.row.digest" placeholder="请输入摘要" clearable> <el-form-item prop="digest" :rules="scope.row.digest?'1':rules.digest">
</el-input> <el-input v-model="scope.row.digest" placeholder="请输入摘要" clearable>
</el-form-item> </el-input>
</template> </el-form-item>
</el-table-column> </template>
<el-table-column prop="afterTax" label="税后余额(元)" min-width="220"> </el-table-column>
<template #default="scope"> <el-table-column prop="afterTax" label="税后余额(元)" min-width="220">
<el-form-item prop="afterTax" :rules="scope.row.afterTax?'1':rules.afterTax"> <template #default="scope">
<el-input-number v-model="scope.row.afterTax" placeholder="请输入税后余额" :controls="false"> <el-form-item prop="afterTax" :rules="scope.row.afterTax?'1':rules.afterTax">
</el-input-number> <el-input-number v-model="scope.row.afterTax" placeholder="请输入税后余额" :controls="false">
</el-form-item> </el-input-number>
</template> </el-form-item>
</el-table-column> </template>
<el-table-column prop="oper" label="操作"> </el-table-column>
<template #default="scope"> <el-table-column prop="oper" label="操作">
<el-button type="primary" @click="handleDelete(scope.$index)" link style="font-size: 18px">删除</el-button> <template #default="scope">
</template> <el-button type="primary" @click="handleDelete(scope.$index)" link style="font-size: 16px">删除</el-button>
</el-table-column> </template>
</el-table> </el-table-column>
</el-form> </el-table>
<div style="width:100%;text-align: center;padding: 10px"> </el-form>
<el-button type="primary" @click="handleAdd" link style="font-size: 18px">添加一行</el-button> <div style="width:100%;text-align: center;padding: 10px">
<el-button type="primary" @click="handleAdd" link style="font-size: 16px">添加一行</el-button>
</div>
<div class="oper-page-btn">
<el-button color="#DED0B2" @click="handleSubmit(form)">提交</el-button>
<el-button @click="handleBack">返回</el-button>
</div>
</div> </div>
<div class="oper-page-btn">
<el-button color="#DED0B2" @click="handleSubmit(form)">提交</el-button>
<el-button @click="handleBack">返回</el-button>
</div>
</div>
</template> </template>
<script setup lang="jsx"> <script setup lang="jsx">
@@ -87,6 +88,7 @@ import {useRoute} from "vue-router";
import {useCacheStore} from '@/stores/cache.js' import {useCacheStore} from '@/stores/cache.js'
import {getBaseInfoApi} from "@/components/steps/api"; import {getBaseInfoApi} from "@/components/steps/api";
import {toThousands} from '@/utils/changePrice.js' import {toThousands} from '@/utils/changePrice.js'
const baseFormData = ref([]) const baseFormData = ref([])
const cacheStore = useCacheStore() const cacheStore = useCacheStore()
const route = useRoute() const route = useRoute()
@@ -253,7 +255,7 @@ const schema = computed(() => {
<div> <div>
{ {
baseFormData.value?.economicEstimate ? baseFormData.value?.economicEstimate ?
<span>{ toThousands(baseFormData.value?.economicEstimate )}</span> <span>{toThousands(baseFormData.value?.economicEstimate)}</span>
: <span>{'--'}</span> : <span>{'--'}</span>
} }
</div> </div>
@@ -427,7 +429,7 @@ const handleSubmit = (instance) => {
const handleBack = () => { const handleBack = () => {
history.back() history.back()
} }
onActivated(()=>{ onActivated(() => {
tableForm.value = { tableForm.value = {
tableData: [ tableData: [
{ {
@@ -452,5 +454,17 @@ onActivated(()=>{
} }
} }
} }
:deep(.el-date-editor--month) {
width: 100%;
}
:deep(.el-input-number) {
width: 100%;
.el-input__inner {
text-align: left;
}
}
</style> </style>

View File

@@ -19,7 +19,7 @@
<el-button @click="handleSearchImplementationFileList" 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="executeTableConfig" <fvTable style="width: 100%;min-height:160px;max-height: 160px" v-if="showAttachmentTable" height="160" :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"/>

View File

@@ -2,7 +2,7 @@
<div v-loading="loading"> <div v-loading="loading">
<el-form :model="formData"> <el-form :model="formData">
<el-row style="margin-left: 15px"> <el-row style="margin-left: 15px">
<el-col :span="24" v-if="type==='singleDetail'"> <el-col :span="24">
<el-form-item label="征集名称"> <el-form-item label="征集名称">
<span>{{ formData.requirementName }}</span> <span>{{ formData.requirementName }}</span>
</el-form-item> </el-form-item>
@@ -51,8 +51,8 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<baseTitle v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" title="附件列表"></baseTitle> <baseTitle v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" title="附件文件"></baseTitle>
<file-component title="" tag="需求征集" :fullscreen="true" <file-component title="" tag="需求征集" :fullscreen="true" :fileNameTableWidth="300"
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>
@@ -198,4 +198,19 @@ watch(() => props.processViewer, (newVal) => {
display: -webkit-box; display: -webkit-box;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
} }
:deep(.el-table__header) {
.is-leaf:first-child {
.cell {
margin-left: -53px !important;
}
}
}
:deep(.el-table__body) {
.el-table__cell:first-child {
.cell {
margin-left: -26px !important;
}
}
}
</style> </style>

View File

@@ -33,7 +33,7 @@
<baseTitle title="关联项目"></baseTitle> <baseTitle title="关联项目"></baseTitle>
<el-col :span="24"> <el-col :span="24">
<el-form-item> <el-form-item>
<fvTable style="width: 100%;max-height:162px" height="162" v-if="showTable" :tableConfig="projectTable" <fvTable style="width: 100%;max-height:160px" height="160" v-if="showTable" :tableConfig="projectTable"
:data="formData.projects" :isSettingCol="false" :pagination="false"> :data="formData.projects" :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"/>
@@ -41,10 +41,10 @@
</fvTable> </fvTable>
</el-form-item> </el-form-item>
</el-col> </el-col>
<baseTitle title="附件列表"></baseTitle> <baseTitle title="附件文件"></baseTitle>
<el-col :span="24"> <el-col :span="24">
<el-form-item> <el-form-item>
<fvTable style="width: 100%;max-height: 162px;" height="162" v-if="showTable" :tableConfig="fileTable" <fvTable style="width: 100%;max-height: 160px;" height="160" v-if="showTable" :tableConfig="fileTable"
:data="formData.files" :isSettingCol="false" :pagination="false"> :data="formData.files" :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"/>

View File

@@ -70,7 +70,7 @@
<!-- </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: -15px;">
<baseTitle title="附件列表" style="margin-bottom: 0"></baseTitle> <baseTitle title="附件文件" style="margin-bottom: 0"></baseTitle>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<file-component <file-component

View File

@@ -29,8 +29,8 @@
<baseTitle title="附件文件" style="margin-right: 10px"></baseTitle> <baseTitle title="附件文件" style="margin-right: 10px"></baseTitle>
<file-upload @getFile="getFile"/> <file-upload @getFile="getFile"/>
<fvTable style="width: 100%;max-height: 162px;" v-if="showTable" <fvTable style="width: 100%;max-height: 160px;" v-if="showTable"
:tableConfig="tableConfig" height="162" :data="formData.files" :tableConfig="tableConfig" height="160" :data="formData.files"
:isSettingCol="false" :pagination="false"> :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"/>