|
@@ -28,21 +28,16 @@
|
|
|
projectDetail?.['isSign'] === 1
|
|
|
"
|
|
|
>
|
|
|
- <li
|
|
|
- v-if="contractDatas?.length === 0 || contractFlowStatuMap[0]"
|
|
|
- @click="handleStartContractSign"
|
|
|
- >
|
|
|
- 合同签订
|
|
|
- </li>
|
|
|
<dialog-confirm
|
|
|
- title="当前存在进行中的合同,是否重复发起?"
|
|
|
- v-else-if="contractFlowStatuMap[1]"
|
|
|
+ title="是否发起合同签订流程?"
|
|
|
+ v-if="!signContract?.exist"
|
|
|
@confirm="handleStartContractSign"
|
|
|
>
|
|
|
<template #reference>
|
|
|
<li>合同签订</li>
|
|
|
</template>
|
|
|
</dialog-confirm>
|
|
|
+ <li @click="processLookHandle(signContract.instanceId)">合同签订</li>
|
|
|
</template>
|
|
|
<li
|
|
|
v-if="projectPermis.projectPermisState.all || projectPermis.projectPermisState.xmLeader"
|
|
@@ -98,7 +93,7 @@
|
|
|
>
|
|
|
结项
|
|
|
</li>
|
|
|
- <li @click="processLookHandle">查看流程</li>
|
|
|
+ <li @click="processLookHandle(projectDetail.instanceId)">查看流程</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div>
|
|
@@ -107,7 +102,9 @@
|
|
|
<div><i class="icon"></i>项目信息</div>
|
|
|
</li>
|
|
|
<li
|
|
|
- v-show="contractFlowStatuMap[90]"
|
|
|
+ v-show="
|
|
|
+ signContract.exist && signContract.isvalid == 1 && signContract.flowStatus === 90
|
|
|
+ "
|
|
|
@click="switchComponent(XmhtComp, 1)"
|
|
|
:class="currentIndex === 1 ? 'active' : ''"
|
|
|
>
|
|
@@ -124,11 +121,15 @@
|
|
|
<template v-if="projectDetail?.['isSign'] === 0">
|
|
|
<p style="margin-right: 0px">该项目不签合同</p>
|
|
|
</template>
|
|
|
- <template v-else-if="contractDatas.length === 0">
|
|
|
+ <template v-else-if="!signContract.exist">
|
|
|
<p style="margin-right: 0px">该项目待签合同</p>
|
|
|
</template>
|
|
|
- <template v-else-if="contractFlowStatuMap[0]">
|
|
|
- <p style="margin-right: 0px">合同签订中</p>
|
|
|
+ <template
|
|
|
+ v-else-if="
|
|
|
+ signContract.exist && signContract.isvalid == 1 && signContract.flowStatus != 90
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <p style="margin-right: 0px">合同签订过程中</p>
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
<p>
|
|
@@ -152,7 +153,11 @@
|
|
|
:is="currentComponent"
|
|
|
ref="dynamicRef"
|
|
|
:editor="isEditorProject"
|
|
|
- :isEstimateAmount="contractFlowStatuMap[1] || contractFlowStatuMap[90] ? false : true"
|
|
|
+ :isEstimateAmount="
|
|
|
+ signContract.exist &&
|
|
|
+ signContract.isvalid == 1 &&
|
|
|
+ (signContract.flowStatus == 90 || signContract.flowStatus == 1)
|
|
|
+ "
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -162,6 +167,7 @@ import { type Component } from 'vue'
|
|
|
import { useRoute } from 'vue-router'
|
|
|
import { useProjectPermis } from '@/store/modules/projectPermis'
|
|
|
import {
|
|
|
+ isProjectContractExist,
|
|
|
getContractsByProject,
|
|
|
startContractSign,
|
|
|
startOutsourcingApply,
|
|
@@ -198,6 +204,29 @@ const switchComponent: (c: Component, i: number) => void = (c: Component, i: num
|
|
|
}
|
|
|
const projectPermis = useProjectPermis()
|
|
|
projectPermis.initProjectPermis(projectId as string)
|
|
|
+/***
|
|
|
+ * 初始化项目中是否存在合同
|
|
|
+ */
|
|
|
+const signContract = ref<{
|
|
|
+ exist: boolean //判断是否存在合同
|
|
|
+ contractId: string
|
|
|
+ instanceId: string
|
|
|
+ isvalid: number //判断有没有作废 0 已作废 1 未作废
|
|
|
+ flowStatus: number
|
|
|
+}>({
|
|
|
+ exist: false,
|
|
|
+ contractId: '',
|
|
|
+ instanceId: '',
|
|
|
+ isvalid: 0,
|
|
|
+ flowStatus: 0
|
|
|
+})
|
|
|
+const queryProjectContractExist = async (projectId: string) => {
|
|
|
+ const result: any = await isProjectContractExist(projectId)
|
|
|
+ if (result) {
|
|
|
+ signContract.value = result
|
|
|
+ }
|
|
|
+}
|
|
|
+queryProjectContractExist(query?.id as string)
|
|
|
/***
|
|
|
* 查询项目详情
|
|
|
* **/
|
|
@@ -273,37 +302,15 @@ const projectStatusAndProcessHandler = (sfys: string) => {
|
|
|
/**
|
|
|
* 流程查看
|
|
|
*/
|
|
|
-const processLookHandle = () => {
|
|
|
- openProcessFlow(router, projectDetail.value?.instanceId)
|
|
|
+const processLookHandle = (instanceId: string) => {
|
|
|
+ openProcessFlow(router, instanceId)
|
|
|
}
|
|
|
/***
|
|
|
* 查询合同数据:存在多主合同情况
|
|
|
* **/
|
|
|
const contractDatas = ref<Contract[]>([])
|
|
|
-interface ContractStatuInterface {
|
|
|
- [key: number]: boolean
|
|
|
-}
|
|
|
-const contractFlowStatuMap = ref<ContractStatuInterface>({
|
|
|
- 0: false,
|
|
|
- 1: false,
|
|
|
- 90: false
|
|
|
-})
|
|
|
-const contractFlowStatuMapFunc: (datas: Contract[]) => ContractStatuInterface = (
|
|
|
- datas: Contract[]
|
|
|
-) => {
|
|
|
- const result: ContractStatuInterface = {
|
|
|
- 0: false,
|
|
|
- 1: false,
|
|
|
- 90: false
|
|
|
- }
|
|
|
- for (const contract of datas) {
|
|
|
- result[contract.flowStatus] = true
|
|
|
- }
|
|
|
- return result
|
|
|
-}
|
|
|
const queryContractsByProject = async (projectId: string) => {
|
|
|
const tData: Contract[] = await getContractsByProject(projectId)
|
|
|
- contractFlowStatuMap.value = contractFlowStatuMapFunc(tData)
|
|
|
contractDatas.value = tData
|
|
|
if (contractDatas.value.length > 0 && contractId) {
|
|
|
switchComponent(XmhtComp, 1)
|