fix : 修复流程图切换功能及修改"研发阶段"文字为项目阶段

This commit is contained in:
2024-06-11 19:16:35 +08:00
parent 3f7de153da
commit b425e709aa
13 changed files with 122 additions and 37 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

@@ -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,

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

@@ -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>
@@ -87,6 +96,7 @@ 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: {

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

@@ -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

@@ -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 = []