Merge pull request 'master' (#681) from master into prod
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/681
This commit is contained in:
@@ -588,3 +588,23 @@ html, body, #app, .el-container, .el-aside, .el-main {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
//绘制下拉选择框远程搜索时右侧的箭头
|
||||
.el-select {
|
||||
.el-select__wrapper {
|
||||
.el-select__suffix::before {
|
||||
content: "";
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border: solid #a8abb2;
|
||||
border-width: 0 0 1px 1px;
|
||||
transform: translate(-50%, -50%) rotate(-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
.is-focused {
|
||||
.el-select__suffix::before {
|
||||
margin-top: 10px;
|
||||
transform: translate(-50%, -50%) rotate(-225deg) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-form :model="formData" ref="applyForm" :rules="rules" :label-position="labelPosition">
|
||||
<el-form :model="formData" ref="applyForm" :rules="rules" :label-position="labelPosition" style="margin-left: 5px">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item :label="label" prop="attachment" >
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
<div v-loading="loading">
|
||||
<el-row v-if="type==='execute'">
|
||||
<el-col :span="24">
|
||||
<baseTitle :title="'附件信息'"></baseTitle>
|
||||
<baseTitle :title="'附件信息'" style="margin-bottom: 5px"></baseTitle>
|
||||
</el-col>
|
||||
<el-form :model="attachmentParam" inline style="margin-top: 15px">
|
||||
<el-form :model="attachmentParam" inline style="margin-top: 15px;margin-left: 15px">
|
||||
<el-form-item label="标签" prop="tag">
|
||||
<el-select v-model="attachmentParam.tag" placeholder="请选择标签" clearable filterable style="width: 300px">
|
||||
<el-select v-model="attachmentParam.tag" placeholder="请选择标签" clearable filterable remote style="width: 300px">
|
||||
<el-option
|
||||
v-for="item in tagsOption"
|
||||
:key="item.value"
|
||||
@@ -20,7 +20,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<fvTable style="width: 100%;min-height:162px;max-height: 162px" v-if="showAttachmentTable" height="162"
|
||||
:tableConfig="executeTableConfig"
|
||||
:tableConfig="executeTableConfig" class="execute-table"
|
||||
:data="otherAttachmentList" :isSettingCol="false" :pagination="false">
|
||||
<template #empty>
|
||||
<el-empty :image-size="55" description="暂无数据" style="padding: 0"/>
|
||||
@@ -28,7 +28,7 @@
|
||||
</fvTable>
|
||||
</el-row>
|
||||
<baseTitle v-if="type!='phase'" :title="getTagName(type)+getTitleInfo(data.taskId)"></baseTitle>
|
||||
<fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>
|
||||
<fvForm :schema="schema" @getInstance="(e)=>form = e" style="margin-left: 15px"></fvForm>
|
||||
<el-form :model="formData" label-width="auto" style="margin-top: -15px">
|
||||
<file-component :title="getTagName(type)+'附件'" :tag="getTagName(type)"
|
||||
v-model:value="formData.fileList" :processViewer="processViewer"
|
||||
@@ -92,24 +92,26 @@ const executeTableConfig = reactive({
|
||||
type: 'index',
|
||||
label: '序号',
|
||||
align: 'center',
|
||||
width: '80',
|
||||
},
|
||||
{
|
||||
prop: 'originalFileName',
|
||||
label: '文件名',
|
||||
align: 'center',
|
||||
width: 700,
|
||||
currentRender: ({row, index}) => (
|
||||
<div style="color: #2a99ff;cursor: pointer;" onClick={() => clickToPreview(row)}>{row.originalFileName}</div>)
|
||||
},
|
||||
{
|
||||
prop: 'tag',
|
||||
label: '标签',
|
||||
align: 'center'
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
prop: 'size',
|
||||
label: '文件大小',
|
||||
align: 'center',
|
||||
width: 450,
|
||||
currentRender: ({row, index}) => (parseInt(row.size / 1024) + 'KB')
|
||||
},
|
||||
{
|
||||
@@ -264,7 +266,7 @@ const schema = computed(() => {
|
||||
label: '项目负责人',
|
||||
prop: 'projectChargePerson',
|
||||
colProps: {
|
||||
span: 24
|
||||
span: 6
|
||||
},
|
||||
labelWidth: 'left',
|
||||
component: () => (
|
||||
@@ -281,14 +283,15 @@ const schema = computed(() => {
|
||||
label: '项目成员',
|
||||
prop: 'projectPersonList',
|
||||
colProps: {
|
||||
span: 24
|
||||
span: 6
|
||||
},
|
||||
labelWidth: 'left',
|
||||
component: () => (
|
||||
<div>
|
||||
{
|
||||
props.formData.projectPersonList ? props.formData.projectPersonList.map(item => {
|
||||
return <span>{item.name} </span>
|
||||
props.formData.projectPersonList ? props.formData.projectPersonList.map((item, index) => {
|
||||
return <span>{item.name}
|
||||
<span>{index != props.formData.projectPersonList?.length - 1 ? ',' : ''}</span></span>
|
||||
}) : <span>{'--'}</span>
|
||||
}
|
||||
</div>
|
||||
@@ -298,13 +301,13 @@ const schema = computed(() => {
|
||||
label: '部门分管领导',
|
||||
prop: 'optionalChargeLeadership',
|
||||
colProps: {
|
||||
span: 24
|
||||
span: 6
|
||||
},
|
||||
labelWidth: 'left',
|
||||
component: () => (
|
||||
<div>
|
||||
{
|
||||
props.formData.optionalChargeLeadership?.length>0 ? props.formData.optionalChargeLeadership.map(item => {
|
||||
props.formData.optionalChargeLeadership?.length > 0 ? props.formData.optionalChargeLeadership.map(item => {
|
||||
return <span>{item.name} </span>
|
||||
}) : <span>{'--'}</span>
|
||||
}
|
||||
@@ -377,7 +380,7 @@ const schema = computed(() => {
|
||||
component: () => (
|
||||
<div>
|
||||
{
|
||||
props.formData.optionalChargeLeadership?.length>0 ? props.formData.optionalChargeLeadership.map(item => {
|
||||
props.formData.optionalChargeLeadership?.length > 0 ? props.formData.optionalChargeLeadership.map(item => {
|
||||
return <span>{item.name} </span>
|
||||
}) : <span>{'--'}</span>
|
||||
}
|
||||
@@ -557,7 +560,41 @@ watch(() => props.loading, (newVal) => {
|
||||
props.loading = newVal
|
||||
}, {deep: true})
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.execute-table {
|
||||
.el-table__header {
|
||||
.el-table__cell:last-child {
|
||||
.cell {
|
||||
margin-left: -160px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.el-table__body {
|
||||
.el-table__cell:last-child{
|
||||
.cell {
|
||||
margin-left: -160px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
:deep(.el-table__header) {
|
||||
.is-leaf:first-child {
|
||||
.cell {
|
||||
margin-left: 10px !important;
|
||||
white-space: nowrap;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//:deep(.el-table__body) {
|
||||
// .el-table__cell:first-child {
|
||||
// .cell {
|
||||
// margin-left: -13px !important;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
</style>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<el-form :label-position="labelAlign">
|
||||
<el-form-item :label="title?'其他文件':''" v-if="fileListShow === 'READ' || fileListShow === 'EDIT'" :label-position="labelAlign" :label-width="title?95:''" style="margin-top: 10px">
|
||||
<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'"/>
|
||||
<fvTable style="width: 100%;max-height: 162px;" v-if="processViewer" height="162" :tableConfig="tableConfig"
|
||||
:data="_value" :isSettingCol="false" :pagination="false">
|
||||
@@ -196,19 +196,5 @@ watch(() => props.processViewer, (newVal) => {
|
||||
:deep(.el-table--fit ) {
|
||||
height: 162px !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>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<el-col :span="24">
|
||||
<baseTitle :title="'附件信息'"></baseTitle>
|
||||
</el-col>
|
||||
<el-form :model="attachmentParam" inline >
|
||||
<el-form :model="attachmentParam" inline style="margin-left: 15px">
|
||||
<el-form-item label="标签" prop="tag">
|
||||
<el-select v-model="attachmentParam.tag" placeholder="请选择标签" clearable filterable style="width: 300px">
|
||||
<el-option
|
||||
@@ -21,7 +21,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<fvTable style="width: 100%;min-height:162px;max-height: 162px" v-if="showAttachmentTable" height="162"
|
||||
:tableConfig="tableConfig"
|
||||
:tableConfig="executeTableConfig" class="execute-apply-table"
|
||||
:data="otherAttachmentList" :isSettingCol="false" :pagination="false">
|
||||
<template #empty>
|
||||
<el-empty :image-size="55" description="暂无数据" style="padding: 0"/>
|
||||
@@ -31,9 +31,10 @@
|
||||
<baseTitle :title="getTitleName(title)+'信息'"></baseTitle>
|
||||
<el-form :model="localFormData" ref="formRef" label-width="auto" v-if="step!=='50'">
|
||||
<el-row>
|
||||
<el-col :span="24" v-if="title==='apply'">
|
||||
<el-form-item label="项目负责人" :required="true" prop=""
|
||||
label-width="106">
|
||||
<el-col :span="6" v-if="title==='apply'">
|
||||
<!-- label-width="106"-->
|
||||
<el-form-item label="项目负责人" :required="true" prop="" label-width="111"
|
||||
>
|
||||
<el-button style="margin-right: 10px" color="#DED0B2" @click="handleShowProjectChargePersonTable">
|
||||
{{ projectChargePersonUserList?.length !== 0 ? '更改' : '请选择' }}
|
||||
</el-button>
|
||||
@@ -44,9 +45,9 @@
|
||||
v-model:value="projectChargePersonUserList" @ok="projectChargePersonUserPickerOk"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" v-if="title==='apply'">
|
||||
<el-form-item label="项目成员" :required="true" prop=""
|
||||
label-width="106">
|
||||
<el-col :span="6" v-if="title==='apply'">
|
||||
<el-form-item label="项目成员" :required="true" prop="" label-width="85"
|
||||
>
|
||||
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowProjectPersonTable">
|
||||
{{ projectPersonUserList?.length !== 0 ? '更改' : getProjectPerson(projectPersonUserList) ? '更改' : '请选择' }}
|
||||
</el-button>
|
||||
@@ -57,13 +58,16 @@
|
||||
v-model:value="projectPersonUserList" @ok="projectPersonUserPickerOk"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" v-if="title==='apply'||title==='check'">
|
||||
<el-form-item label="部门分管领导"
|
||||
label-width="106">
|
||||
<el-col :span="6" v-if="title==='apply'||title==='check'">
|
||||
<el-form-item label="部门分管领导" label-width="115"
|
||||
>
|
||||
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowOptionalChargeLeadershipPicker">
|
||||
{{ optionalChargeLeadershipList?.length !== 0 ? '更改' : getOptionalChargeLeadershipList(optionalChargeLeadershipList) ? '更改' : '请选择' }}
|
||||
{{
|
||||
optionalChargeLeadershipList?.length !== 0 ? '更改' : getOptionalChargeLeadershipList(optionalChargeLeadershipList) ? '更改' : '请选择'
|
||||
}}
|
||||
</el-button>
|
||||
<div v-for="item in getOptionalChargeLeadershipList(optionalChargeLeadershipList)" :key="item.id" style="margin-right: 5px">
|
||||
<div v-for="item in getOptionalChargeLeadershipList(optionalChargeLeadershipList)" :key="item.id"
|
||||
style="margin-right: 5px">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
<user-picker :multiple="true" ref="optionalChargeLeadershipPickerRef" title="请选择部门分管领导"
|
||||
@@ -79,7 +83,8 @@
|
||||
</el-button>
|
||||
<div v-for="(item,index) in getRequestName(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>
|
||||
style="color: #2a99ff;cursor: pointer">{{ item.requestName }}<span
|
||||
v-if="index != localFormData.preProcess?.length -1">,</span>
|
||||
</a>
|
||||
</div>
|
||||
</el-form-item>
|
||||
@@ -95,8 +100,8 @@
|
||||
<div>
|
||||
<div class="approval-record">
|
||||
<div class="approval-title" style="margin-top: -15px">
|
||||
<!-- <baseTitle title="审批记录" v-if="mode === 'resubmit'"></baseTitle>-->
|
||||
<!-- <div v-else></div>-->
|
||||
<!-- <baseTitle title="审批记录" v-if="mode === 'resubmit'"></baseTitle>-->
|
||||
<!-- <div v-else></div>-->
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="diagram">
|
||||
<div class="base-title">流程图</div>
|
||||
@@ -106,10 +111,12 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<el-empty :image-size="100" description="暂无审批记录" v-if="!data?.operationList&&!changeDiagram"/>
|
||||
<el-empty :image-size="100" description="暂无审批记录" v-if="!data?.operationList&&!changeDiagram"/>
|
||||
<div class="process">
|
||||
<operation-render v-if="mode === 'resubmit'&&processDiagramViewer&& data?.operationList && data?.operationList.length > 0&&!changeDiagram" :operation-list="data.operationList"
|
||||
:state="data.state"/>
|
||||
<operation-render
|
||||
v-if="mode === 'resubmit'&&processDiagramViewer&& data?.operationList && data?.operationList.length > 0&&!changeDiagram"
|
||||
:operation-list="data.operationList"
|
||||
:state="data.state"/>
|
||||
<process-diagram-viewer mode="view" :idName="title" v-if="processDiagramViewer&&changeDiagram"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -120,7 +127,8 @@
|
||||
<el-button @click="handleBack">返回</el-button>
|
||||
</div>
|
||||
|
||||
<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"/>
|
||||
<el-dialog v-if="showPreTable" title="前置流程" v-model="showPreTable" width="80%">
|
||||
<el-form :model="preProcessForm" inline @submit.prevent="searchPreProcess">
|
||||
@@ -201,7 +209,7 @@ const otherAttachmentList = ref([])
|
||||
const attachmentParam = reactive({
|
||||
tag: ''
|
||||
})
|
||||
const tableConfig = reactive({
|
||||
const executeTableConfig = reactive({
|
||||
columns: [
|
||||
{
|
||||
prop: 'index',
|
||||
@@ -214,17 +222,21 @@ const tableConfig = reactive({
|
||||
prop: 'originalFileName',
|
||||
label: '文件名',
|
||||
align: 'center',
|
||||
currentRender: ({row, index}) => (<div style="color: #2a99ff;cursor: pointer;" onClick={()=>clickToPreview(row)}>{row.originalFileName}</div>)
|
||||
width: 620,
|
||||
currentRender: ({row, index}) => (
|
||||
<div style="color: #2a99ff;cursor: pointer;" onClick={() => clickToPreview(row)}>{row.originalFileName}</div>)
|
||||
},
|
||||
{
|
||||
prop: 'tag',
|
||||
label: '标签',
|
||||
align: 'center'
|
||||
align: 'center',
|
||||
width: 160,
|
||||
},
|
||||
{
|
||||
prop: 'size',
|
||||
label: '文件大小',
|
||||
align: 'center',
|
||||
width: 600,
|
||||
currentRender: ({row, index}) => (parseInt(row.size / 1024) + 'KB')
|
||||
},
|
||||
{
|
||||
@@ -333,14 +345,14 @@ const optionalChargeLeaderPickerOk = (userList) => {
|
||||
localStorage.setItem('optionalChargeLeadershipList', JSON.stringify(optionalChargeLeadershipList.value))
|
||||
}
|
||||
|
||||
const clickToPreview=(row)=>{
|
||||
const clickToPreview = (row) => {
|
||||
filePreviewShow.value = false
|
||||
filePreviewParam.value = {
|
||||
fileUrl: row.url,
|
||||
fileName: row.originalFileName,
|
||||
fileType: row.fileType
|
||||
}
|
||||
nextTick(()=>{
|
||||
nextTick(() => {
|
||||
filePreviewShow.value = true
|
||||
})
|
||||
}
|
||||
@@ -732,14 +744,14 @@ const init = async () => {
|
||||
|
||||
watchEffect(() => {
|
||||
if (props.formData.projectChargePerson == null) {
|
||||
projectChargePersonUserList.value = []
|
||||
projectChargePersonUserList.value = []
|
||||
} else {
|
||||
projectChargePersonUserList.value = [props.formData.projectChargePerson]
|
||||
}
|
||||
if (props.formData.optionalChargeLeadership == null) {
|
||||
optionalChargeLeadershipList.value = []
|
||||
} else {
|
||||
optionalChargeLeadershipList.value=props.formData.optionalChargeLeadership
|
||||
optionalChargeLeadershipList.value = props.formData.optionalChargeLeadership
|
||||
}
|
||||
projectPersonUserList.value = props.formData.projectPersonList ? props.formData.projectPersonList : []
|
||||
let flag = Object.keys(props.formData).length && (localFormData.value = props.formData)
|
||||
@@ -801,11 +813,30 @@ onMounted(async () => {
|
||||
await init()
|
||||
})
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.execute-apply-table {
|
||||
.el-table__header {
|
||||
.el-table__cell:last-child {
|
||||
.cell {
|
||||
margin-left: -108px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<style scoped>
|
||||
.el-table__body {
|
||||
.el-table__cell:last-child {
|
||||
.cell {
|
||||
margin-left: -108px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style scoped lang="scss">
|
||||
.oper {
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -46,12 +46,12 @@
|
||||
<el-row gutter="20" style="margin-left: 5px;margin-bottom: -18px;">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="现有业务描述" prop="serviceDescription">
|
||||
<span>{{ localFormData.serviceDescription }}</span>
|
||||
<span style="white-space: pre-wrap">{{ localFormData.serviceDescription }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="研发项目关键内容描述" prop="contentDescription">
|
||||
<span>{{ localFormData.contentDescription }}</span>
|
||||
<span style="white-space: pre-wrap">{{ localFormData.contentDescription }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -322,4 +322,19 @@ getFundOptions()
|
||||
overflow-y: auto;
|
||||
padding-bottom: 0 !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>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<el-input v-model="attachment.fileName" placeholder="请输入附件名称查询" clearable filterable style="width: 300px"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="标签" prop="tag" v-if="type==='40'">
|
||||
<el-select v-model="attachment.tag" placeholder="请选择标签" clearable filterable style="width: 300px">
|
||||
<el-select v-model="attachment.tag" placeholder="请选择标签" clearable remote filterable style="width: 300px">
|
||||
<el-option
|
||||
v-for="item in tagsOption"
|
||||
:key="item.value"
|
||||
|
||||
@@ -11,12 +11,12 @@
|
||||
v-bind="item.colProps || { span: 12}"
|
||||
:key="item.prop"
|
||||
>
|
||||
<el-form-item
|
||||
<el-form-item
|
||||
v-bind="item"
|
||||
:key="item.prop"
|
||||
>
|
||||
<template #default>
|
||||
<component
|
||||
<component
|
||||
v-if="item.component"
|
||||
:is="item.component"
|
||||
v-bind="item.props || {}"
|
||||
@@ -105,4 +105,4 @@ defineExpose({ getValues, setValues, validate, resetFields, formInstance, form }
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -44,9 +44,9 @@ export const useTagsView = defineStore('tagsView',()=>{
|
||||
}
|
||||
|
||||
//删除其他标签页
|
||||
const delOtherVisitedViews = ({path,meta}) => {
|
||||
const delOtherVisitedViews = ({path,meta,query}) => {
|
||||
visitedViews.value = []
|
||||
visitedViews.value.push({path,meta})
|
||||
visitedViews.value.push({path,meta,query})
|
||||
toLastTagView(visitedViews)
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,8 @@ const searchConfig = ref([
|
||||
clearable: true,
|
||||
data: [],
|
||||
filterable: true,
|
||||
checkStrictly: true
|
||||
checkStrictly: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -60,6 +61,7 @@ const searchConfig = ref([
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
cacheKey: 'project_cost',
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -72,6 +74,7 @@ const searchConfig = ref([
|
||||
filterable: true,
|
||||
checkStrictly: true,
|
||||
cacheKey: 'fee_stage',
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -169,7 +169,7 @@ const formData = ref({
|
||||
deadline: '',
|
||||
collectExplain: '',
|
||||
fileList: [],
|
||||
isSpecialFund: true
|
||||
isSpecialFund: false
|
||||
})
|
||||
const routerName = ref(router.currentRoute.value.name)
|
||||
const processDiagramViewer = ref(false)
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<!-- <fvSearchForm :searchConfig="searchConfig" @search="search"></fvSearchForm>-->
|
||||
|
||||
<fvTable ref="tableIns" :tableConfig="tableConfig" @headBtnClick="headBtnClick">
|
||||
<template #empty>
|
||||
@@ -60,41 +59,6 @@ import {getRequirementStatePerm} from "@/api/project-demand";
|
||||
const cacheStore = useCacheStore()
|
||||
const authStore = useAuthStore()
|
||||
const router = useRouter()
|
||||
const collectTypeSelectRef=ref()
|
||||
const searchConfig = reactive([
|
||||
{
|
||||
label: '征集名称',
|
||||
prop: 'requirementName',
|
||||
component: 'el-input',
|
||||
props: {
|
||||
placeholder: '请输入征集名称查询',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
checkStrictly: true
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '征集类型',
|
||||
prop: 'collectType',
|
||||
component: shallowRef(fvSelect),
|
||||
props: {
|
||||
placeholder: '请选择征集类型',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
cacheKey: 'collect_type'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '状态',
|
||||
prop: 'state',
|
||||
component: shallowRef(fvSelect),
|
||||
props: {
|
||||
placeholder: '请选择状态',
|
||||
clearable: true,
|
||||
cacheKey: 'demand_collection'
|
||||
}
|
||||
},
|
||||
])
|
||||
const selectForm = ref({})
|
||||
const tableIns = ref()
|
||||
const formRef = ref()
|
||||
|
||||
@@ -348,9 +348,9 @@ const showSingleTable = ref(false)
|
||||
const otherFileList = ref([])
|
||||
const singleList = ref([])
|
||||
const formData = ref({
|
||||
isSpecialFund: true,
|
||||
industryUniversityResearch: '0',
|
||||
governmentDeclaration: '0',
|
||||
isSpecialFund: false,
|
||||
industryUniversityResearch: '1',
|
||||
governmentDeclaration: '1',
|
||||
resultForm: []
|
||||
})
|
||||
|
||||
|
||||
@@ -61,6 +61,7 @@ const searchConfig = reactive([
|
||||
cacheKey: 'project_type',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
},
|
||||
colProps: {}
|
||||
},
|
||||
@@ -73,6 +74,7 @@ const searchConfig = reactive([
|
||||
placeholder: '请选择项目影响',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
},
|
||||
colProps: {}
|
||||
},
|
||||
@@ -85,6 +87,7 @@ const searchConfig = reactive([
|
||||
cacheKey: 'rd_subject',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -107,7 +110,9 @@ const searchConfig = reactive([
|
||||
props: {
|
||||
placeholder: '请选择状态',
|
||||
clearable: true,
|
||||
cacheKey: 'demand_summary'
|
||||
filterable:true,
|
||||
cacheKey: 'demand_summary',
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
// {
|
||||
|
||||
@@ -54,7 +54,8 @@ const searchConfig = ref([
|
||||
clearable: true,
|
||||
data: [],
|
||||
filterable: true,
|
||||
checkStrictly: true
|
||||
checkStrictly: true,
|
||||
remote:true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -76,6 +77,7 @@ const searchConfig = ref([
|
||||
cacheKey: 'project_type',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -87,6 +89,7 @@ const searchConfig = ref([
|
||||
placeholder: '请选择项目影响',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
},
|
||||
colProps: {}
|
||||
},
|
||||
@@ -99,6 +102,7 @@ const searchConfig = ref([
|
||||
cacheKey: 'rd_subject',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -121,7 +125,9 @@ const searchConfig = ref([
|
||||
props: {
|
||||
placeholder: '请选择状态',
|
||||
clearable: true,
|
||||
cacheKey: 'project_filing'
|
||||
cacheKey: 'project_filing',
|
||||
filterable: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
// {
|
||||
|
||||
@@ -324,6 +324,7 @@ const searchConfig = reactive([
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
cacheKey: 'project_cost',
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -336,6 +337,7 @@ const searchConfig = reactive([
|
||||
filterable: true,
|
||||
checkStrictly: true,
|
||||
cacheKey: 'fee_stage',
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<fvForm :schema="schema" @getInstance="(e)=>baseForm = e" label-position="left" label-width="left"></fvForm>
|
||||
<el-form :model="attachment" inline style="margin-top: 15px">
|
||||
<el-form-item label="标签" prop="tag">
|
||||
<el-select v-model="attachment.tag" placeholder="请选择标签" clearable filterable style="width: 300px">
|
||||
<el-select v-model="attachment.tag" placeholder="请选择标签" clearable filterable remote style="width: 300px">
|
||||
<el-option
|
||||
v-for="item in tagsOption"
|
||||
:key="item.value"
|
||||
|
||||
@@ -52,7 +52,8 @@ const searchConfig = ref([
|
||||
clearable: true,
|
||||
data: [],
|
||||
filterable: true,
|
||||
checkStrictly: true
|
||||
checkStrictly: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -75,6 +76,7 @@ const searchConfig = ref([
|
||||
cacheKey: 'project_type',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -86,6 +88,7 @@ const searchConfig = ref([
|
||||
cacheKey: 'project_impact',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
},
|
||||
colProps: {}
|
||||
},
|
||||
@@ -98,6 +101,7 @@ const searchConfig = ref([
|
||||
cacheKey: 'rd_subject',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -120,7 +124,9 @@ const searchConfig = ref([
|
||||
props: {
|
||||
placeholder: '请选择状态',
|
||||
clearable: true,
|
||||
cacheKey: 'project_implementation'
|
||||
filterable: true,
|
||||
cacheKey: 'project_implementation',
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
// {
|
||||
|
||||
@@ -51,7 +51,8 @@ const searchConfig = ref([
|
||||
clearable: true,
|
||||
data: [],
|
||||
filterable: true,
|
||||
checkStrictly: true
|
||||
checkStrictly: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -73,6 +74,7 @@ const searchConfig = ref([
|
||||
cacheKey: 'project_type',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -84,6 +86,7 @@ const searchConfig = ref([
|
||||
placeholder: '请选择项目影响',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
},
|
||||
colProps: {}
|
||||
},
|
||||
@@ -96,6 +99,7 @@ const searchConfig = ref([
|
||||
cacheKey: 'rd_subject',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -118,7 +122,9 @@ const searchConfig = ref([
|
||||
props: {
|
||||
placeholder: '请选择状态',
|
||||
clearable: true,
|
||||
cacheKey: 'project_initiation'
|
||||
filterable: true,
|
||||
remote: true,
|
||||
cacheKey: 'project_initiation',
|
||||
}
|
||||
},
|
||||
// {
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
<div v-loading="loading">
|
||||
<el-row v-if="type==='execute'">
|
||||
<el-col :span="24">
|
||||
<baseTitle :title="'附件信息'"></baseTitle>
|
||||
<baseTitle :title="'附件信息'" style="margin-bottom: 5px"></baseTitle>
|
||||
</el-col>
|
||||
<el-form :model="attachmentParam" inline style="margin-top: 15px" @submit.prevent>
|
||||
<el-form :model="attachmentParam" inline style="margin-top: 15px;margin-left: 15px" @submit.prevent>
|
||||
<el-form-item label="标签" prop="tag">
|
||||
<el-select v-model="attachmentParam.tag" placeholder="请选择标签" clearable filterable style="width: 200px">
|
||||
<el-option
|
||||
@@ -28,10 +28,11 @@
|
||||
</el-row>
|
||||
<baseTitle v-if="type!='phase'" :title="getTagName(type)+'信息'" ></baseTitle>
|
||||
|
||||
<fvForm :schema="schema" @getInstance="(e)=>form = e" ></fvForm>
|
||||
<fvForm :schema="schema" @getInstance="(e)=>form = e" style="margin-left: 15px"></fvForm>
|
||||
<el-form :model="formData" label-width="auto">
|
||||
<file-component
|
||||
:title="getTagName(type)+'附件'"
|
||||
:fileNameTableWidth="300"
|
||||
:tag="getTagName(type)"
|
||||
v-model:value="formData.fileList"
|
||||
:processViewer="processViewer"
|
||||
@@ -105,6 +106,7 @@ const executeTableConfig = reactive({
|
||||
prop: 'originalFileName',
|
||||
label: '文件名',
|
||||
align: 'center',
|
||||
width: 300
|
||||
},
|
||||
{
|
||||
prop: 'tag',
|
||||
@@ -189,7 +191,7 @@ const editSingleTableConfig = reactive({
|
||||
prop: 'originalFileName',
|
||||
label: '文件名',
|
||||
align: 'center',
|
||||
width: 400,
|
||||
width: 300,
|
||||
currentRender: ({row, index}) => (<div style="color: #2a99ff;cursor: pointer;" onClick={()=>clickToPreview(row)}>{row.originalFileName}</div>)
|
||||
},
|
||||
{
|
||||
@@ -289,8 +291,8 @@ const schema = computed(() => {
|
||||
component: () => (
|
||||
<div>
|
||||
{
|
||||
props.formData.projectPersonList ? props.formData.projectPersonList.map(item => {
|
||||
return <span>{item.name} </span>
|
||||
props.formData.projectPersonList ? props.formData.projectPersonList.map((item, index) => {
|
||||
return <span>{item.name} <span>{index != props.formData.projectPersonList?.length - 1 ? ',' : ''}</span></span>
|
||||
}) : <span>{'--'}</span>
|
||||
}
|
||||
</div>
|
||||
@@ -306,7 +308,7 @@ const schema = computed(() => {
|
||||
component: () => (
|
||||
<div>
|
||||
{
|
||||
props.formData.optionalChargeLeadership ? props.formData.optionalChargeLeadership.map(item => {
|
||||
props.formData.optionalChargeLeadership?.length > 0 ? props.formData.optionalChargeLeadership.map(item => {
|
||||
return <span>{item.name} </span>
|
||||
}) : <span>{'--'}</span>
|
||||
}
|
||||
@@ -379,7 +381,7 @@ const schema = computed(() => {
|
||||
component: () => (
|
||||
<div>
|
||||
{
|
||||
props.formData.optionalChargeLeadership ? props.formData.optionalChargeLeadership.map(item => {
|
||||
props.formData.optionalChargeLeadership?.length > 0 ? props.formData.optionalChargeLeadership.map(item => {
|
||||
return <span>{item.name} </span>
|
||||
}) : <span>{'--'}</span>
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ const localSteps = ref([
|
||||
key: 'approve',
|
||||
},
|
||||
{
|
||||
title: '项目实施',
|
||||
title: '项目验收',
|
||||
key: 'execute',
|
||||
},
|
||||
{
|
||||
|
||||
@@ -47,19 +47,19 @@
|
||||
<el-row gutter="20" style="margin-bottom: -18px;margin-left: 5px;">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="现有业务描述" prop="serviceDescription">
|
||||
<span>{{ localFormData.serviceDescription }}</span>
|
||||
<span style="white-space: pre-wrap">{{ localFormData.serviceDescription }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="研发项目关键内容描述" prop="contentDescription">
|
||||
<span>{{ localFormData.contentDescription }}</span>
|
||||
<span style="white-space: pre-wrap">{{ localFormData.contentDescription }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<baseTitle title="需求上报申请书" style="margin-bottom: 10px">></baseTitle>
|
||||
<el-row gutter="20" style="margin-bottom: -15px;">
|
||||
<el-col :span="24">
|
||||
<single-file-component tag="需求上报" :fileNameTableWidth="200" :fullscreen="true"
|
||||
<single-file-component tag="需求上报" :fileNameTableWidth="300" :fullscreen="true"
|
||||
v-model:value="localFormData.singleFile" :processViewer="processViewer"
|
||||
labelAlign="top"/>
|
||||
<!-- <el-form-item label="需求上报申请书" label-position="top" style="display:block;">-->
|
||||
@@ -74,7 +74,7 @@
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<file-component
|
||||
tag="需求上报" :fileNameTableWidth="200" :fullscreen="true"
|
||||
tag="需求上报" :fileNameTableWidth="300" :fullscreen="true"
|
||||
v-model:value="localFormData.fileList"
|
||||
:processViewer="processViewer"
|
||||
:file-list-show="fileListShow"
|
||||
|
||||
@@ -322,4 +322,8 @@ onMounted(async () => {
|
||||
:deep(.el-table--fit ) {
|
||||
height: 300px !important;
|
||||
}
|
||||
.add-block{
|
||||
|
||||
padding: 0 30px 30px 15px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -31,7 +31,9 @@ const searchConfig = reactive([
|
||||
props: {
|
||||
placeholder: '请选择状态',
|
||||
clearable: true,
|
||||
cacheKey: 'special_fund'
|
||||
filterable:true,
|
||||
cacheKey: 'special_fund',
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -82,7 +82,8 @@ const searchConfig = ref([
|
||||
props: {
|
||||
placeholder: '请选择',
|
||||
clearable: true,
|
||||
cacheKey: 'normal_disable'
|
||||
cacheKey: 'normal_disable',
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -71,7 +71,8 @@ const searchConfig = ref([
|
||||
props: {
|
||||
placeholder: '请输入',
|
||||
cacheKey: 'normal_disable',
|
||||
clearable: true
|
||||
clearable: true,
|
||||
remote: true
|
||||
}
|
||||
},
|
||||
])
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-button v-print="print" color="#ded0b2" icon="Printer" style="margin-left: 15px"> 打印</el-button>
|
||||
<el-button v-print="print" color="#ded0b2" icon="Printer"> 打印</el-button>
|
||||
</div>
|
||||
<div style="margin: 10px" id="printBox">
|
||||
<el-timeline>
|
||||
|
||||
Reference in New Issue
Block a user