|
@@ -11,7 +11,9 @@
|
|
|
</div>
|
|
|
<ul>
|
|
|
<li @click="editorProject">{{ !isEditorProject ? '编辑' : '保存' }}</li>
|
|
|
- <li v-if="projectDetail['isSign'] === 1" @click="handleStartContractSign">合同签订</li>
|
|
|
+ <li v-if="projectDetail['isSign'] === 1 && !contractData" @click="handleStartContractSign"
|
|
|
+ >合同签订</li
|
|
|
+ >
|
|
|
<li @click="addSubProject">添加子项目</li>
|
|
|
<li>验收</li>
|
|
|
<li>结项</li>
|
|
@@ -23,8 +25,10 @@
|
|
|
<li @click="switchComponent(XmxxComp, 0)" :class="currentIndex === 0 ? 'active' : ''"
|
|
|
><i class="icon"></i>项目信息
|
|
|
</li>
|
|
|
- <!-- v-if="projectDetail['isSign'] === 1" -->
|
|
|
- <li @click="switchComponent(XmhtComp, 1)" :class="currentIndex === 1 ? 'active' : ''"
|
|
|
+ <li
|
|
|
+ v-if="!!contractData"
|
|
|
+ @click="switchComponent(XmhtComp, 1)"
|
|
|
+ :class="currentIndex === 1 ? 'active' : ''"
|
|
|
><i class="icon"></i>项目合同
|
|
|
</li>
|
|
|
<li @click="switchComponent(XmcbComp, 2)" :class="currentIndex === 2 ? 'active' : ''"
|
|
@@ -71,11 +75,12 @@ const XmxxComp = defineAsyncComponent(() => {
|
|
|
return import('./components/xmxx/index.vue')
|
|
|
})
|
|
|
import XmhtComp from './components/xmht/index.vue'
|
|
|
-import { startContractSign, startOutsourcing } from '@/service/contract'
|
|
|
+import { getContractsByProject, startContractSign, startOutsourcing } from '@/service/contract'
|
|
|
import { openFlow } from '@/utils/flow'
|
|
|
-import { useMutation } from '@tanstack/vue-query'
|
|
|
+import { useMutation, useQuery } from '@tanstack/vue-query'
|
|
|
import { ContractId } from '@/interface/contract'
|
|
|
import { ProjectId } from '@/interface/project'
|
|
|
+import { getProjectById } from '@/service/project'
|
|
|
|
|
|
const XmcbComp = defineAsyncComponent(() => {
|
|
|
return import('./components/xmcb/index.vue')
|
|
@@ -83,6 +88,8 @@ const XmcbComp = defineAsyncComponent(() => {
|
|
|
const FjclComp = defineAsyncComponent(() => {
|
|
|
return import('./components/fjcl/index.vue')
|
|
|
})
|
|
|
+
|
|
|
+const { query } = useRoute()
|
|
|
const currentComponent = shallowRef<Component>(XmxxComp)
|
|
|
const currentIndex = shallowRef<number>(0)
|
|
|
const switchComponent: (c: Component, i: number) => void = (c: Component, i: number) => {
|
|
@@ -94,28 +101,16 @@ const addSubProject: () => void = () => {
|
|
|
dynamicRef.value?.switchSubProject()
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * 项目详情后台接口
|
|
|
+/***
|
|
|
+ * 查询项目详情
|
|
|
* **/
|
|
|
-const projectDetail = shallowRef({
|
|
|
- xmmc: '',
|
|
|
- contractAmount: '',
|
|
|
- receivableAmount: '',
|
|
|
- contractBalance: ''
|
|
|
-})
|
|
|
-const queryProjectDetail = async (id: any): Promise<void> => {
|
|
|
- const urlApi = `/project`
|
|
|
- const sendData = {
|
|
|
- id: id
|
|
|
+const { data: projectDetail } = useQuery(
|
|
|
+ [getProjectById.name, query.id],
|
|
|
+ async () => await getProjectById(query.id as string),
|
|
|
+ {
|
|
|
+ enabled: (query?.id ?? '') !== ''
|
|
|
}
|
|
|
- const result = await request.get({ url: urlApi, params: sendData }, '/business')
|
|
|
- projectDetail.value = result
|
|
|
-}
|
|
|
-const route = useRoute()
|
|
|
-const query = route.query
|
|
|
-if (query.id) {
|
|
|
- queryProjectDetail(query.id)
|
|
|
-}
|
|
|
+)
|
|
|
/**
|
|
|
* 项目编辑
|
|
|
* **/
|
|
@@ -127,6 +122,17 @@ const editorProject: () => void = (): void => {
|
|
|
dynamicRef.value.saveProjectHandle()
|
|
|
}
|
|
|
|
|
|
+/***
|
|
|
+ * 查询合同数据
|
|
|
+ * **/
|
|
|
+const { data: contractData } = useQuery(
|
|
|
+ [getContractsByProject.name, query.id],
|
|
|
+ async () => await getContractsByProject(query.id as string),
|
|
|
+ {
|
|
|
+ enabled: (query?.id ?? '') !== ''
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
/**
|
|
|
* 发起合同签订
|
|
|
*/
|