Merge pull request 'dj' (#318) from dj into master

Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/318
This commit is contained in:
2024-06-11 11:16:58 +00:00
25 changed files with 257 additions and 101 deletions

View File

@@ -549,3 +549,30 @@ html, body, #app, .el-container, .el-aside, .el-main {
right: 15px; right: 15px;
z-index: 5; z-index: 5;
} }
.approval-record {
padding-bottom: 30px;
position: relative;
.approval-title {
display: flex;
align-items: center;
justify-content: space-between;
.diagram {
display: flex;
align-items: center;
.base-title {
margin-right: 10px;
}
//.el-switch {
// margin-left: 15px;
//}
}
}
.process {
position: relative;
}
}

View File

@@ -7,9 +7,9 @@
<el-button type="primary" link @click="handleDownload(singleFile)" style="font-size: 16px"> <el-button type="primary" link @click="handleDownload(singleFile)" style="font-size: 16px">
{{ singleFile ? singleFile?.originalFileName : formData.singleFile?.originalFileName }} {{ singleFile ? singleFile?.originalFileName : formData.singleFile?.originalFileName }}
</el-button> </el-button>
<el-button type="danger" link @click="deleteSingleFile(singleFile,1)">删除</el-button> <el-button type="danger" link @click="deleteSingleFile(singleFile?singleFile:formData.singleFile,1)">删除</el-button>
</template> </template>
<template v-else-if="!preview||JSON.stringify(singleFile) == '{}'||singleFile==null"> <template v-else-if="!preview||JSON.stringify(singleFile) == '{}'||singleFile==null||formData.singleFile==null">
<file-upload @getFile="getAttachment" :showFileList="showFileList" :multiple="false" :maxSize="1" <file-upload @getFile="getAttachment" :showFileList="showFileList" :multiple="false" :maxSize="1"
:disabled="isSingleFile" @delete="deleteAttachment"/> :disabled="isSingleFile" @delete="deleteAttachment"/>
</template> </template>
@@ -130,7 +130,7 @@ const rules = reactive({
attachment: [{required: true, message: '请上传附件', trigger: ['blur', 'change']}], attachment: [{required: true, message: '请上传附件', trigger: ['blur', 'change']}],
}) })
const applyForm = ref() const applyForm = ref()
const singleFile = ref() const singleFile = ref(props.formData.singleFile)
const isSingleFile = ref(false) const isSingleFile = ref(false)
const allFileList = ref([]) const allFileList = ref([])
watch(() => props.showTable, (newVal) => { watch(() => props.showTable, (newVal) => {

View File

@@ -18,11 +18,20 @@
</el-form-item> </el-form-item>
</div> </div>
<div class="approval-record"> <div class="approval-record">
<baseTitle title="审批记录"></baseTitle> <div class="approval-title">
<baseTitle title="审批记录"></baseTitle>
<div class="diagram">
<div class="base-title">流程图</div>
<el-switch
v-model="changeDiagram"
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
/>
</div>
</div>
<div class="process"> <div class="process">
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0" :operation-list="data.operationList" <operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram" :operation-list="data.operationList"
:state="data.state"/> :state="data.state"/>
<process-diagram-viewer v-if="processViewer" :id-name="idName?idName:type"/> <process-diagram-viewer v-if="processViewer&&changeDiagram" :id-name="idName?idName:type"/>
</div> </div>
</div> </div>
</div> </div>
@@ -34,6 +43,7 @@ import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.v
import {ElLoading} from 'element-plus'; import {ElLoading} from 'element-plus';
import {downloadFile} from "@/api/project-demand"; import {downloadFile} from "@/api/project-demand";
const changeDiagram = ref(false)
const props = defineProps({ const props = defineProps({
formData: { formData: {
type: Object, type: Object,
@@ -83,7 +93,16 @@ const schema = computed(() => {
prop: 'preProcess', prop: 'preProcess',
colProps: { colProps: {
span: 24 span: 24
} },
component: () => (
<div>
{
props.formData.preProcess?
<span><a target="_blank" style={{color: '#409EFF', cursor: 'pointer'}} href={props.formData.preProcessBaseUrl + props.formData.preProcess.requestId}>{props.formData.preProcess.requestName}</a> </span> :
<span>{'--'}</span>
}
</div>
)
}, },
{ {
label: '项目立项附件', label: '项目立项附件',
@@ -115,7 +134,16 @@ const schema = computed(() => {
prop: 'preProcess', prop: 'preProcess',
colProps: { colProps: {
span: 24 span: 24
} },
component: () => (
<div>
{
props.formData.preProcess?
<span><a target="_blank" style={{color: '#409EFF', cursor: 'pointer'}} href={props.formData.preProcessBaseUrl + props.formData.preProcess.requestId}>{props.formData.preProcess.requestName}</a> </span> :
<span>{'--'}</span>
}
</div>
)
}, },
{ {
label: '项目验收附件', label: '项目验收附件',

View File

@@ -57,11 +57,21 @@
</el-col> </el-col>
</el-row> </el-row>
<div class="approval-record"> <div class="approval-record">
<baseTitle title="审批记录"></baseTitle> <div class="approval-title">
<baseTitle title="审批记录"></baseTitle>
<div class="diagram">
<div class="base-title">流程图</div>
<el-switch
v-model="changeDiagram"
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
/>
</div>
</div>
<div class="process"> <div class="process">
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0" :operation-list="data.operationList" <operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram"
:operation-list="data.operationList"
:state="data.state"/> :state="data.state"/>
<process-diagram-viewer v-if="processViewer" id-name="collectionProcess"/> <process-diagram-viewer v-if="processViewer&&changeDiagram" id-name="collectionProcess"/>
</div> </div>
</div> </div>
</el-form> </el-form>
@@ -108,7 +118,7 @@ const props = defineProps({
default: '' default: ''
} }
}) })
const changeDiagram = ref(false)
const _value = computed({ const _value = computed({
get() { get() {
return props.value; return props.value;
@@ -142,12 +152,4 @@ watch(() => props.processViewer, (newVal) => {
:deep(.el-empty__description) { :deep(.el-empty__description) {
margin-top: 0; margin-top: 0;
} }
.approval-record {
padding-bottom: 30px;
.process {
position: relative;
}
}
</style> </style>

View File

@@ -3,12 +3,12 @@
<el-form :model="localFormData" ref="formRef" label-width="auto" :rules="rules" v-if="step!=='50'"> <el-form :model="localFormData" ref="formRef" label-width="auto" :rules="rules" v-if="step!=='50'">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="前置流程"> <el-form-item label="前置流程" :required="true" prop="requestName">
<div @click="handleShowPreTable">点击</div> <a :href="localFormData.preProcess?.baseUrl" target="_blank"
<!-- <el-select v-model="localFormData.preProcess" placeholder="请选择前置流程" clearable filterable>--> style="color: #2a99ff;margin-right: 10px;cursor: pointer">{{ localFormData.preProcess?.requestName }}</a>
<!-- <el-option v-for="item in preProcessList" :key="item.id" :label="item.label" :value="item.value">--> <el-button color="#DED0B2" @click="handleShowPreTable">
<!-- </el-option>--> {{ localFormData.preProcess?.requestName ? '更改' : '请选择' }}
<!-- </el-select>--> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -18,15 +18,24 @@
@getAttachment="getAttachment" @getAttachment="getAttachment"
@getOtherFile="getOtherFile" :showFileList="true" :formData="localFormData" @getOtherFile="getOtherFile" :showFileList="true" :formData="localFormData"
:preview="mode == 'resubmit'"/> :preview="mode == 'resubmit'"/>
<div v-if="mode === 'resubmit'"> <div v-if="mode === 'resubmit'&&!changeDiagram">
<baseTitle title="审批记录"></baseTitle> <div class="approval-title">
<baseTitle title="审批记录"></baseTitle>
<div class="diagram">
<div class="base-title">流程图</div>
<el-switch
v-model="changeDiagram"
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
/>
</div>
</div>
<div class="process"> <div class="process">
<operation-render :operation-list="data.operationList" :state="data.state"/> <operation-render :operation-list="data.operationList" :state="data.state"/>
</div> </div>
</div> </div>
<baseTitle title="流程"></baseTitle> <baseTitle title="流程"></baseTitle>
<div class="approval-record"> <div class="approval-record">
<process-diagram-viewer mode="view" :idName="title" v-if="processDiagramViewer"/> <process-diagram-viewer mode="view" :idName="title" v-if="processDiagramViewer&&changeDiagram"/>
</div> </div>
<div class="oper-page-btn"> <div class="oper-page-btn">
<el-button color="#DED0B2" v-if="mode === 'submit'" @click="handleSubmit">提交</el-button> <el-button color="#DED0B2" v-if="mode === 'submit'" @click="handleSubmit">提交</el-button>
@@ -34,13 +43,17 @@
<el-button @click="handleBack">返回</el-button> <el-button @click="handleBack">返回</el-button>
</div> </div>
<el-dialog title="前置流程" v-model="showPreTable" width="80%"> <el-dialog title="前置流程" v-model="showPreTable" width="80%">
<el-form :model="searchPreProcess" label-width="auto"> <el-form :model="preProcessForm" inline>
<el-form-item label="请求名称"> <el-form-item label="请求名称">
<el-input v-model="searchPreProcess.requestName" placeholder="请输入请求名称" clearable> <el-input v-model="preProcessForm.requestName" placeholder="请输入请求名称" clearable>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item>
<el-button color="#DED0B2" @click="searchPreProcess">搜索</el-button>
<el-button @click="handleReset">重置</el-button>
</el-form-item>
</el-form> </el-form>
<el-table :data="preProcessList" stripe v-loading="loading"> <el-table :data="preProcessList" stripe v-loading="loading">
<el-table-column prop="requestId" label="请求id"></el-table-column> <el-table-column prop="requestId" label="请求id"></el-table-column>
<el-table-column prop="requestName" label="请求名称"></el-table-column> <el-table-column prop="requestName" label="请求名称"></el-table-column>
<el-table-column prop="lastOperatorName" label="最后操作人名称"></el-table-column> <el-table-column prop="lastOperatorName" label="最后操作人名称"></el-table-column>
@@ -50,12 +63,13 @@
<el-table-column prop="createTime" label="创建时间"></el-table-column> <el-table-column prop="createTime" label="创建时间"></el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template #default="scope"> <template #default="scope">
<a :href="scope.row.baseUrl" target="_blank" style="color: #2a99ff">查看详情</a> <el-button @click="chooseProProcess(scope.row)">选择</el-button>
<a :href="scope.row.baseUrl" target="_blank" style="color: #2a99ff">查看详情</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <paging :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :page-sizes="[10, 20, 30, 40,50]"--> <paging :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :page-sizes="[10, 20, 30, 40,50]"
<!-- :total="total" @changeSize="handleSizeChange" @goPage="handleCurrentChange"/>--> :total="total" @changeSize="handleSizeChange" @goPage="handleCurrentChange"/>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@@ -66,21 +80,23 @@ import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.v
import {ElNotification} from "element-plus"; import {ElNotification} from "element-plus";
import { import {
getApplyProcess, getApplyProcess,
projectApply, getPreProcess,
resubmitApply,
getProjectCheckProcess, getProjectCheckProcess,
getProjectConclusionProcess,
projectApply,
projectCheck, projectCheck,
resubmitCheck,
projectConclusion, projectConclusion,
resubmitConclusion, resubmitApply,
getProjectConclusionProcess resubmitCheck,
resubmitConclusion
} from "@/api/project-manage"; } from "@/api/project-manage";
import {useProcessStore} from '@/stores/processStore.js'; import {useProcessStore} from '@/stores/processStore.js';
import {useTagsView} from '@/stores/tagsview.js' import {useTagsView} from '@/stores/tagsview.js'
import {getPreProcess} from "@/api/project-manage"; import Paging from "@/components/pagination/index.vue";
const router = useRouter() const router = useRouter()
const route = useRoute() const route = useRoute()
const changeDiagram = ref(false)
const emit = defineEmits(["getAttachment", "getOtherFile"]) const emit = defineEmits(["getAttachment", "getOtherFile"])
const props = defineProps({ const props = defineProps({
title: { title: {
@@ -110,21 +126,28 @@ const props = defineProps({
}) })
const preProcessList = ref([]) const preProcessList = ref([])
//暂存数据 //暂存数据
const currentList=ref([]) const currentList = ref([])
const searchPreProcess = ref({ const total = ref(0)
requestName:'' const preProcessForm = reactive({
requestName: ''
}) })
const pageInfo = reactive({ const pageInfo = reactive({
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
}) })
const rules = reactive({ const rules = reactive({
// requirementName: [{required: true, message: '请选择前置流程', trigger: 'blur'}], requestName: [{required: true, message: '请选择前置流程', trigger: 'blur'}],
}) })
const tagsViewStore = useTagsView() const tagsViewStore = useTagsView()
const processStore = useProcessStore() const processStore = useProcessStore()
const otherFileList = ref([]) const otherFileList = ref([])
const localFormData = ref({}) const localFormData = ref({
preProcess: {
requestId: null,
requestName: '',
baseUrl: ''
}
})
const attachment = ref() const attachment = ref()
const showPreTable = ref(false) const showPreTable = ref(false)
const showTable = ref(true) const showTable = ref(true)
@@ -133,19 +156,55 @@ const processDiagramViewer = ref(false)
const name = ref(router.currentRoute.value.name) const name = ref(router.currentRoute.value.name)
const deploymentId = ref() const deploymentId = ref()
const projectId = ref(route.query.projectId) const projectId = ref(route.query.projectId)
const searchPreProcess = () => {
getPreProcessList()
}
const handleReset = () => {
preProcessForm.requestName = ''
getPreProcessList()
}
const handleShowPreTable = () => { const handleShowPreTable = () => {
showPreTable.value = true showPreTable.value = true
getPreProcessList()
} }
const getPreProcessList = () => { const getPreProcessList = () => {
// loading.value=true loading.value = true
getPreProcess().then(res => { getPreProcess().then(res => {
console.log('浅灰的', res) loading.value = false
// loading.value=false let searchArray = []
// baseUrl.value=res.data.baseUrl let regexPattern = ("%" + preProcessForm.requestName + "%").replace(/%/g, '.*').replace(/_/g, '.');
// currentList.value=res.data let regex = new RegExp('^' + regexPattern + '$');
preProcessList.value = res.data.slice(0,10) res.data.filter((item) => {
if (regex.test(item.requestName)) {
searchArray.push(item)
}
})
total.value = searchArray.length
currentList.value = searchArray
preProcessList.value = currentList.value.slice(0, 10)
}) })
} }
const chooseProProcess = (item) => {
localFormData.value.preProcess = {
requestId: item.requestId,
requestName: item.requestName,
baseUrl: item.baseUrl
}
showPreTable.value = false
}
//切换每页显示条数
const handleSizeChange = (val) => {
pageInfo.pageSize = val;
preProcessList.value = currentList.value.slice((pageInfo.pageNum - 1) * val, pageInfo.pageNum * val)
};
//点击页码进行分页功能
const handleCurrentChange = (val) => {
pageInfo.pageNum = val;
preProcessList.value = currentList.value.slice((val - 1) * pageInfo.pageSize, val * pageInfo.pageSize)
};
const getTitleName = (type) => { const getTitleName = (type) => {
switch (type) { switch (type) {
case 'apply': case 'apply':
@@ -190,9 +249,13 @@ const getFileParam = (item) => {
} }
} }
const handleSubmit = async () => { const handleSubmit = async () => {
// if (!formRef.value) return if (localFormData.value.preProcess === undefined) {
// formRef.value.validate(async (valid) => { ElNotification({
// if (!valid) return title: '提示',
message: '请选择前置流程',
type: 'error'
})
}
let files = [] let files = []
if (props.mode === 'resubmit') { if (props.mode === 'resubmit') {
attachment.value.allFileList.forEach(item => { attachment.value.allFileList.forEach(item => {
@@ -207,9 +270,9 @@ const handleSubmit = async () => {
// localFormData.value.singleFile = getFileParam(localFormData.value.singleFile) // localFormData.value.singleFile = getFileParam(localFormData.value.singleFile)
// } // }
console.log('attachment.value.singleFile', attachment.value, attachment.value.singleFile) console.log('attachment.value.singleFile', attachment.value, attachment.value.singleFile)
if (localFormData.value.singleFile) { // if (localFormData.value.singleFile) {
//
} else { // } else {
if (attachment.value.singleFile == null) { if (attachment.value.singleFile == null) {
attachment.value.validate() attachment.value.validate()
ElNotification({ ElNotification({
@@ -221,14 +284,15 @@ const handleSubmit = async () => {
} else { } else {
attachment.value.clearValidate() attachment.value.clearValidate()
} }
} // }
let params = { let params = {
deploymentId: deploymentId.value, deploymentId: deploymentId.value,
requirementId: route.query.id, requirementId: route.query.id,
fileList: files, fileList: files,
singleFile: localFormData.value.singleFile, singleFile: attachment.value.singleFile,
projectId: projectId.value, projectId: projectId.value,
preProcess: JSON.stringify(localFormData.value.preProcess)
} }
console.log('params', params) console.log('params', params)
let res let res
@@ -272,7 +336,6 @@ const handleSubmit = async () => {
}) })
} }
} }
// })
} }
const init = async () => { const init = async () => {
let id = projectId.value let id = projectId.value
@@ -311,7 +374,6 @@ watchEffect(() => {
return Object.keys(props.formData).length && (localFormData.value = props.formData) return Object.keys(props.formData).length && (localFormData.value = props.formData)
}) })
getPreProcessList()
onMounted(async () => { onMounted(async () => {
await init() await init()
}) })

View File

@@ -64,11 +64,21 @@
</el-col> </el-col>
</el-row> </el-row>
<div class="approval-record"> <div class="approval-record">
<baseTitle title="审批记录"></baseTitle> <div class="approval-title">
<baseTitle title="审批记录"></baseTitle>
<div class="diagram">
<div class="base-title">流程图</div>
<el-switch
v-model="changeDiagram"
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
/>
</div>
</div>
<div class="process"> <div class="process">
<operation-render v-if="processViewer" :operation-list="data.operationList" <operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram"
:operation-list="data.operationList"
:state="data.state"/> :state="data.state"/>
<process-diagram-viewer v-if="processViewer" id-name="fundProcess"/> <process-diagram-viewer v-if="processViewer&&changeDiagram" id-name="fundProcess"/>
</div> </div>
</div> </div>
</el-form> </el-form>
@@ -83,6 +93,7 @@ import OperationRender from '@/views/workflow/common/OperationRender.vue'
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue' import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue'
import {downloadFile} from "@/api/project-demand"; import {downloadFile} from "@/api/project-demand";
const changeDiagram = ref(false)
const emit = defineEmits(['getInfo', "update:formData"]) const emit = defineEmits(['getInfo', "update:formData"])
const form = ref() const form = ref()

View File

@@ -151,11 +151,20 @@
</el-col> </el-col>
</el-row> </el-row>
<div class="approval-record"> <div class="approval-record">
<baseTitle title="审批记录"></baseTitle> <div class="approval-title">
<baseTitle title="审批记录"></baseTitle>
<div class="diagram">
<div class="base-title">流程图</div>
<el-switch
v-model="changeDiagram"
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
/>
</div>
</div>
<div class="process"> <div class="process">
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0" :operation-list="data.operationList" <operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram" :operation-list="data.operationList"
:state="data.state"/> :state="data.state"/>
<process-diagram-viewer v-if="processViewer" id-name="summaryProcess"/> <process-diagram-viewer v-if="processViewer&&changeDiagram" id-name="summaryProcess"/>
</div> </div>
</div> </div>
</el-form> </el-form>
@@ -202,6 +211,7 @@ const props = defineProps({
default: '' default: ''
} }
}) })
const changeDiagram = ref(false)
const localFormData = ref({}) const localFormData = ref({})
const router = useRouter() const router = useRouter()
const fundOption = ref([]) const fundOption = ref([])

View File

@@ -45,11 +45,11 @@ const searchConfig = reactive([
cacheKey: 'project_cost', cacheKey: 'project_cost',
} }
}, { }, {
label: '研发阶段', label: '项目阶段',
prop: 'researchStage', prop: 'researchStage',
component: shallowRef(fvSelect), component: shallowRef(fvSelect),
props: { props: {
placeholder: '请选择研发阶段查询', placeholder: '请选择项目阶段查询',
clearable: true, clearable: true,
filterable: true, filterable: true,
checkStrictly: true, checkStrictly: true,
@@ -102,6 +102,7 @@ const tableConfig = reactive({
prop: 'projectCost', prop: 'projectCost',
label: '项目费用', label: '项目费用',
align: 'center', align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.projectCost !== null) { if (row.projectCost !== null) {
return (<Tag dictType={'project_cost'} value={row.projectCost}/>) return (<Tag dictType={'project_cost'} value={row.projectCost}/>)
@@ -112,8 +113,9 @@ const tableConfig = reactive({
}, },
{ {
prop: 'researchStage', prop: 'researchStage',
label: '研发阶段', label: '项目阶段',
align: 'center', align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) { if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) {
return (<Tag dictType={'research_stage'} value={row.researchStage}/>) return (<Tag dictType={'research_stage'} value={row.researchStage}/>)
@@ -134,6 +136,7 @@ const tableConfig = reactive({
prop: 'source', prop: 'source',
label: '来源', label: '来源',
align: 'center', align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.source&&row.source !== null&&row.source!==undefined) { if (row.source&&row.source !== null&&row.source!==undefined) {
return (<Tag dictType={'ledger_source'} value={row.source}/>) return (<Tag dictType={'ledger_source'} value={row.source}/>)

View File

@@ -37,11 +37,20 @@
</el-form-item> </el-form-item>
</div> </div>
<div class="approval-record"> <div class="approval-record">
<baseTitle title="审批记录"></baseTitle> <div class="approval-title">
<baseTitle title="审批记录"></baseTitle>
<div class="diagram">
<div class="base-title">流程图</div>
<el-switch
v-model="changeDiagram"
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
/>
</div>
</div>
<div class="process"> <div class="process">
<operation-render v-if="shareProcessViewer" :operation-list="shareData.operationList" <operation-render v-if="shareProcessViewer&& shareData.operationList && shareData.operationList.length > 0&&!changeDiagram" :operation-list="shareData.operationList"
:state="shareData.state"/> :state="shareData.state"/>
<process-diagram-viewer v-if="shareProcessViewer" id-name="shareProcess"/> <process-diagram-viewer v-if="shareProcessViewer&&changeDiagram" id-name="shareProcess"/>
</div> </div>
</div> </div>
<opinion v-if="shareData.taskId" :formData="shareData.formData" :taskId="shareData.taskId" v-model:value="auditOpinion"></opinion> <opinion v-if="shareData.taskId" :formData="shareData.formData" :taskId="shareData.taskId" v-model:value="auditOpinion"></opinion>
@@ -55,6 +64,7 @@ import {ElNotification} from "element-plus";
import {useProcessStore} from '@/stores/processStore.js'; import {useProcessStore} from '@/stores/processStore.js';
import {getAllocationDetail} from "@/api/expense-manage"; import {getAllocationDetail} from "@/api/expense-manage";
const changeDiagram = ref(false)
const processStore = useProcessStore() const processStore = useProcessStore()
const route = useRoute() const route = useRoute()
const shareData = ref({}) const shareData = ref({})

View File

@@ -91,6 +91,7 @@ const tableConfig = reactive({
prop: 'oper', prop: 'oper',
label: '操作', label: '操作',
align: 'center', align: 'center',
fixed:'right',
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
let btn = [] let btn = []

View File

@@ -69,11 +69,11 @@ const searchConfig = reactive([
cacheKey: 'project_cost', cacheKey: 'project_cost',
} }
}, { }, {
label: '研发阶段', label: '项目阶段',
prop: 'researchStage', prop: 'researchStage',
component: shallowRef(fvSelect), component: shallowRef(fvSelect),
props: { props: {
placeholder: '请选择研发阶段查询', placeholder: '请选择项目阶段查询',
clearable: true, clearable: true,
filterable: true, filterable: true,
checkStrictly: true, checkStrictly: true,
@@ -131,7 +131,7 @@ const tableConfig = reactive({
}, },
{ {
prop: 'researchStage', prop: 'researchStage',
label: '研发阶段', label: '项目阶段',
align: 'center', align: 'center',
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) { if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) {

View File

@@ -82,6 +82,7 @@ const getAllInfo = async (state) => {
commonProvessViewer.value = false commonProvessViewer.value = false
const {data, code, msg} = await getMapProjectStateInfo(route.query.projectId, state) const {data, code, msg} = await getMapProjectStateInfo(route.query.projectId, state)
if (code === 1000) { if (code === 1000) {
data.formData.preProcess = data.formData.preProcess ? JSON.parse(data.formData.preProcess) : undefined
detailData.value = data detailData.value = data
mode.value = data.formData.mode mode.value = data.formData.mode
processStore.setDesign(data) processStore.setDesign(data)

View File

@@ -183,7 +183,7 @@ const tableConfig = reactive({
}, },
{ {
prop: 'researchStage', prop: 'researchStage',
label: '研发阶段', label: '项目阶段',
align: 'center', align: 'center',
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {

View File

@@ -31,10 +31,10 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="researchStage" label="研发阶段"> <el-table-column prop="researchStage" label="项目阶段">
<template #default="scope"> <template #default="scope">
<el-form-item prop="researchStage" :rules="scope.row.researchStage?'1':rules.researchStage"> <el-form-item prop="researchStage" :rules="scope.row.researchStage?'1':rules.researchStage">
<el-select v-model="scope.row.researchStage" placeholder="请选择研发阶段" clearable filterable> <el-select v-model="scope.row.researchStage" placeholder="请选择项目阶段" clearable filterable>
<el-option <el-option
v-for="item in cacheStore.getDict('fee_stage')" v-for="item in cacheStore.getDict('fee_stage')"
:key="item.value" :key="item.value"
@@ -115,7 +115,7 @@ const baseForm = ref()
const rules = reactive({ const rules = reactive({
time: [{required: true, message: '请选择时间', trigger: 'blur'}], time: [{required: true, message: '请选择时间', trigger: 'blur'}],
projectCost: [{required: true, message: '请输入项目费用', trigger: 'blur'}], projectCost: [{required: true, message: '请输入项目费用', trigger: 'blur'}],
researchStage: [{required: true, message: '请输入研发阶段', trigger: 'blur'}], researchStage: [{required: true, message: '请输入项目阶段', trigger: 'blur'}],
digest: [{required: true, message: '请输入摘要', trigger: 'blur'}], digest: [{required: true, message: '请输入摘要', trigger: 'blur'}],
afterTax: [{required: true, message: '请输入税后余额', trigger: 'blur'}] afterTax: [{required: true, message: '请输入税后余额', trigger: 'blur'}]
}) })

View File

@@ -269,13 +269,13 @@ const handleSelect = async (selection, row) => {
//切换每页显示条数 //切换每页显示条数
const handleSizeChange = async (val) => { const handleSizeChange = async (val) => {
pageInfo.value.pageSize = val pageInfo.pageSize = val
await getList() await getList()
} }
//点击页码进行分页功能 //点击页码进行分页功能
const handleCurrentChange = async (val) => { const handleCurrentChange = async (val) => {
pageInfo.value.pageNum = val pageInfo.pageNum = val
await getList() await getList()
} }
const handleMoreDelete=(regularId,regularNameList)=>{ const handleMoreDelete=(regularId,regularNameList)=>{

View File

@@ -339,13 +339,13 @@ const handleSelect = async (selection) => {
//切换每页显示条数 //切换每页显示条数
const handleSizeChange = async (val) => { const handleSizeChange = async (val) => {
pageInfo.value.pageSize = val pageInfo.pageSize = val
await getList() await getList()
} }
//点击页码进行分页功能 //点击页码进行分页功能
const handleCurrentChange = async (val) => { const handleCurrentChange = async (val) => {
pageInfo.value.pageNum = val pageInfo.pageNum = val
await getList() await getList()
} }
const handleMoreDelete = (dsId, sourceNameList) => { const handleMoreDelete = (dsId, sourceNameList) => {

View File

@@ -115,6 +115,7 @@ const tableConfig = reactive({
prop: 'oper', prop: 'oper',
label: '操作', label: '操作',
align: 'center', align: 'center',
fixed:'right',
showOverflowTooltip: false, showOverflowTooltip: false,
currentRender: ({row, index}) => { currentRender: ({row, index}) => {
let btn = [] let btn = []

View File

@@ -271,13 +271,13 @@ const handleSelect = async (selection) => {
//切换每页显示条数 //切换每页显示条数
const handleSizeChange = async (val) => { const handleSizeChange = async (val) => {
pageInfo.value.pageSize = val pageInfo.pageSize = val
await getList() await getList()
} }
//点击页码进行分页功能 //点击页码进行分页功能
const handleCurrentChange = async (val) => { const handleCurrentChange = async (val) => {
pageInfo.value.pageNum = val pageInfo.pageNum = val
await getList() await getList()
} }
const handleMoreDelete = (configId, configName) => { const handleMoreDelete = (configId, configName) => {

View File

@@ -129,13 +129,13 @@ const getList = async () => {
//切换每页显示条数 //切换每页显示条数
const handleSizeChange = async (val) => { const handleSizeChange = async (val) => {
pageInfo.value.pageSize = val pageInfo.pageSize = val
await getList() await getList()
} }
//点击页码进行分页功能 //点击页码进行分页功能
const handleCurrentChange = async (val) => { const handleCurrentChange = async (val) => {
pageInfo.value.pageNum = val pageInfo.pageNum = val
await getList() await getList()
} }

View File

@@ -151,13 +151,13 @@ const getList = async () => {
} }
//切换每页显示条数 //切换每页显示条数
const handleSizeChange = async (val) => { const handleSizeChange = async (val) => {
pageInfo.value.pageSize = val pageInfo.pageSize = val
await getList() await getList()
} }
//点击页码进行分页功能 //点击页码进行分页功能
const handleCurrentChange = async (val) => { const handleCurrentChange = async (val) => {
pageInfo.value.pageNum = val pageInfo.pageNum = val
await getList() await getList()
} }

View File

@@ -131,13 +131,13 @@ const getList = async () => {
//切换每页显示条数 //切换每页显示条数
const handleSizeChange = async (val) => { const handleSizeChange = async (val) => {
pageInfo.value.pageSize = val pageInfo.pageSize = val
await getList() await getList()
} }
//点击页码进行分页功能 //点击页码进行分页功能
const handleCurrentChange = async (val) => { const handleCurrentChange = async (val) => {
pageInfo.value.pageNum = val pageInfo.pageNum = val
await getList() await getList()
} }

View File

@@ -308,13 +308,13 @@ const handleSelect = async (selection) => {
//切换每页显示条数 //切换每页显示条数
const handleSizeChange = async (val) => { const handleSizeChange = async (val) => {
pageInfo.value.pageSize = val pageInfo.pageSize = val
await getList() await getList()
} }
//点击页码进行分页功能 //点击页码进行分页功能
const handleCurrentChange = async (val) => { const handleCurrentChange = async (val) => {
pageInfo.value.pageNum = val pageInfo.pageNum = val
await getList() await getList()
} }
const handleMoreDelete=(listenId,listenNameList)=>{ const handleMoreDelete=(listenId,listenNameList)=>{

View File

@@ -77,7 +77,7 @@ const timer = ref(null)
const validComponents = ref(['processSetting', 'processDesign']) const validComponents = ref(['processSetting', 'processDesign'])
// const activeSelect = ref('formDesign') // const activeSelect = ref('formDesign')
// const activeSelect = ref('processSetting') // const activeSelect = ref('processSetting')
const activeSelect = ref('processDesign') const activeSelect = ref('processSetting')
const validVisible = ref(false) const validVisible = ref(false)
const validStep = ref(0) const validStep = ref(0)
const validResult = ref({}) const validResult = ref({})
@@ -88,7 +88,7 @@ const validOptions = ref([
// {title: '扩展设置', description: '', icon: '', status: ''} // {title: '扩展设置', description: '', icon: '', status: ''}
]) ])
onActivated(()=>{ onActivated(()=>{
activeSelect.value = 'processDesign' activeSelect.value = 'processSetting'
init() init()
}) })

View File

@@ -255,13 +255,13 @@ const handleSelect = async (selection, row) => {
//切换每页显示条数 //切换每页显示条数
const handleSizeChange = async (val) => { const handleSizeChange = async (val) => {
pageInfo.value.pageSize = val pageInfo.pageSize = val
await getList() await getList()
} }
//点击页码进行分页功能 //点击页码进行分页功能
const handleCurrentChange = async (val) => { const handleCurrentChange = async (val) => {
pageInfo.value.pageNum = val pageInfo.pageNum = val
await getList() await getList()
} }

View File

@@ -115,13 +115,13 @@ const getList = async () => {
//切换每页显示条数 //切换每页显示条数
const handleSizeChange = async (val) => { const handleSizeChange = async (val) => {
pageInfo.value.pageSize = val pageInfo.pageSize = val
await getList() await getList()
} }
//点击页码进行分页功能 //点击页码进行分页功能
const handleCurrentChange = async (val) => { const handleCurrentChange = async (val) => {
pageInfo.value.pageNum = val pageInfo.pageNum = val
await getList() await getList()
} }