|
@@ -4,17 +4,30 @@
|
|
|
<div>
|
|
|
<div>
|
|
|
<h2>
|
|
|
- {{ projectDetail['xmmc'] }}
|
|
|
- <span class="subTitle">({{ projectDetail['xmbh'] }})</span>
|
|
|
- <span class="statu">进行中</span>
|
|
|
+ {{ projectDetail?.['xmmc'] ?? '' }}
|
|
|
+ <span class="subTitle">({{ projectDetail?.['xmbh'] ?? '' }})</span>
|
|
|
+ <span class="statu" v-if="projectDetail?.['xmzt'] === 0">立项申请中</span>
|
|
|
+ <span class="statu" v-else-if="projectDetail?.['xmzt'] === 1">进行中</span>
|
|
|
+ <span class="statu" v-else-if="projectDetail?.['xmzt'] === 2">已结项</span>
|
|
|
+ <span class="statu" v-else-if="projectDetail?.['xmzt'] === 3">中止</span>
|
|
|
+ <span class="statu" v-else-if="projectDetail?.['xmzt'] === 4">已验收</span>
|
|
|
</h2>
|
|
|
</div>
|
|
|
<ul>
|
|
|
- <li @click="editorProject">{{ !isEditorProject ? '编辑' : '保存' }}</li>
|
|
|
- <li v-if="projectDetail['isSign'] === 1 && !contractData" @click="handleStartContractSign"
|
|
|
- >合同签订</li
|
|
|
- >
|
|
|
- <li @click="addSubProject">添加子项目</li>
|
|
|
+ <li v-show="currentIndex === 0" @click="editorProject"
|
|
|
+ >{{ !isEditorProject ? '编辑' : '保存' }}
|
|
|
+ </li>
|
|
|
+ <template v-if="projectDetail?.['isSign'] !== 0 && contractData?.flowStatus !== 90">
|
|
|
+ <el-popconfirm
|
|
|
+ title="当前存在进行中的合同,是否重复发起?"
|
|
|
+ v-if="contractData?.flowStatus != null"
|
|
|
+ @confirm="handleStartContractSign"
|
|
|
+ >
|
|
|
+ <li>合同签订</li>
|
|
|
+ </el-popconfirm>
|
|
|
+ <li v-else @click="handleStartContractSign">合同签订</li>
|
|
|
+ </template>
|
|
|
+ <li v-show="currentIndex === 0" @click="addSubProject">添加子项目</li>
|
|
|
<li>验收</li>
|
|
|
<li>结项</li>
|
|
|
<li>查看流程</li>
|
|
@@ -26,7 +39,7 @@
|
|
|
<div><i class="icon"></i>项目信息</div>
|
|
|
</li>
|
|
|
<li
|
|
|
- v-show="!!contractData"
|
|
|
+ v-show="contractData?.flowStatus === 90"
|
|
|
@click="switchComponent(XmhtComp, 1)"
|
|
|
:class="currentIndex === 1 ? 'active' : ''"
|
|
|
>
|
|
@@ -42,15 +55,15 @@
|
|
|
<div class="projectInfo">
|
|
|
<p>
|
|
|
<span class="title">合同额(元):</span>
|
|
|
- <span class="value">{{ projectDetail['contractAmount'] }}</span>
|
|
|
+ <span class="value">{{ projectDetail?.['contractAmount'] ?? '' }}</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
<span class="title">应收款(元):</span>
|
|
|
- <span class="value">{{ projectDetail['receivableAmount'] }}</span>
|
|
|
+ <span class="value">{{ projectDetail?.['receivableAmount'] ?? '' }}</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
<span class="title">合同余额(元):</span>
|
|
|
- <span class="value">{{ projectDetail['contractBalance'] }}</span>
|
|
|
+ <span class="value">{{ projectDetail?.['contractBalance'] ?? '' }}</span>
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -89,8 +102,9 @@ const FjclComp = defineAsyncComponent(() => {
|
|
|
})
|
|
|
|
|
|
const { query } = useRoute()
|
|
|
+const { id: projectId, contractId } = query
|
|
|
const currentComponent = shallowRef<Component>(XmxxComp)
|
|
|
-const currentIndex = shallowRef<number>(0)
|
|
|
+const currentIndex = ref<number>(0)
|
|
|
const switchComponent: (c: Component, i: number) => void = (c: Component, i: number) => {
|
|
|
currentComponent.value = c
|
|
|
currentIndex.value = i
|
|
@@ -105,8 +119,8 @@ const addSubProject: () => void = () => {
|
|
|
* 查询项目详情
|
|
|
* **/
|
|
|
const { data: projectDetail } = useQuery(
|
|
|
- [getProjectWithChildrenById.name, query.id],
|
|
|
- async () => await getProjectWithChildrenById(query.id as string),
|
|
|
+ [getProjectWithChildrenById.name, projectId],
|
|
|
+ async () => await getProjectWithChildrenById(projectId as string),
|
|
|
{
|
|
|
enabled: (query?.id ?? '') !== ''
|
|
|
}
|
|
@@ -114,7 +128,7 @@ const { data: projectDetail } = useQuery(
|
|
|
/**
|
|
|
* 项目编辑
|
|
|
* **/
|
|
|
-const isEditorProject = ref<boolean>(true)
|
|
|
+const isEditorProject = ref<boolean>(false)
|
|
|
const editorProject: () => void = (): void => {
|
|
|
isEditorProject.value = !isEditorProject.value
|
|
|
if (isEditorProject.value) return
|
|
@@ -126,10 +140,17 @@ const editorProject: () => void = (): void => {
|
|
|
* 查询合同数据
|
|
|
* **/
|
|
|
const { data: contractData } = useQuery(
|
|
|
- [getContractsByProject.name, query.id],
|
|
|
- async () => await getContractsByProject(query.id as string),
|
|
|
+ [getContractsByProject.name, projectId],
|
|
|
+ async () => await getContractsByProject(projectId as string),
|
|
|
{
|
|
|
- enabled: (query?.id ?? '') !== ''
|
|
|
+ onSuccess: (tData) => {
|
|
|
+ if (tData?.flowStatus === 90 && contractId) {
|
|
|
+ // 查看合同详情
|
|
|
+ switchComponent(XmhtComp, 1)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ enabled: (projectId ?? '') !== '',
|
|
|
+ refetchOnWindowFocus: true
|
|
|
}
|
|
|
)
|
|
|
|
|
@@ -139,7 +160,7 @@ const { data: contractData } = useQuery(
|
|
|
const { mutate: startContractSignMutate } = useMutation(startContractSign, {
|
|
|
onSuccess: (data) => openFlow(data)
|
|
|
})
|
|
|
-const handleStartContractSign = () => startContractSignMutate(query.id as ProjectId)
|
|
|
+const handleStartContractSign = () => startContractSignMutate(projectId as ProjectId)
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
@import './projectDetail.scss';
|