|
@@ -31,7 +31,7 @@
|
|
<li v-if="editor === false" @click="handleEdit">编辑合同</li>
|
|
<li v-if="editor === false" @click="handleEdit">编辑合同</li>
|
|
<li v-else @click="saveContractHandle">保存合同</li>
|
|
<li v-else @click="saveContractHandle">保存合同</li>
|
|
<li>用款申请</li>
|
|
<li>用款申请</li>
|
|
- <li>开票申请</li>
|
|
|
|
|
|
+ <li @click="() => startContractInvoiceMuate(contractDetail?.id)">开票申请</li>
|
|
</ul>
|
|
</ul>
|
|
<table>
|
|
<table>
|
|
<tr>
|
|
<tr>
|
|
@@ -58,7 +58,13 @@
|
|
<tr>
|
|
<tr>
|
|
<td class="th">委托方:</td>
|
|
<td class="th">委托方:</td>
|
|
<td>
|
|
<td>
|
|
- <el-input v-model="contractDetail['clientName']" :disabled="!editor" />
|
|
|
|
|
|
+ <TreeSelectV2
|
|
|
|
+ :data="contractTree"
|
|
|
|
+ :props="{ label: 'name', value: 'id' }"
|
|
|
|
+ v-model="contractDetail['clientId']"
|
|
|
|
+ :filter-method="filterNodeMethod"
|
|
|
|
+ :disabled="!editor"
|
|
|
|
+ />
|
|
</td>
|
|
</td>
|
|
<td class="th">合同次类型:</td>
|
|
<td class="th">合同次类型:</td>
|
|
<td>
|
|
<td>
|
|
@@ -79,11 +85,17 @@
|
|
<tr>
|
|
<tr>
|
|
<td class="th">委托方编号:</td>
|
|
<td class="th">委托方编号:</td>
|
|
<td>
|
|
<td>
|
|
- <el-input v-model="contractDetail['clientId']" :disabled="!editor" />
|
|
|
|
|
|
+ <el-input v-model="contractDetail['clientNumber']" :disabled="!editor" />
|
|
</td>
|
|
</td>
|
|
<td class="th">受托方:</td>
|
|
<td class="th">受托方:</td>
|
|
<td>
|
|
<td>
|
|
- <el-input v-model="contractDetail['assigneeName']" :disabled="!editor" />
|
|
|
|
|
|
+ <TreeSelectV2
|
|
|
|
+ :data="assigneeTree"
|
|
|
|
+ :props="{ label: 'name', value: 'id' }"
|
|
|
|
+ v-model="contractDetail['assigneeId']"
|
|
|
|
+ :filter-method="filterNodeMethod"
|
|
|
|
+ :disabled="!editor"
|
|
|
|
+ />
|
|
</td>
|
|
</td>
|
|
</tr>
|
|
</tr>
|
|
<tr>
|
|
<tr>
|
|
@@ -113,7 +125,7 @@
|
|
<tr>
|
|
<tr>
|
|
<td class="th">销售经理:</td>
|
|
<td class="th">销售经理:</td>
|
|
<td>
|
|
<td>
|
|
- <UserOrgTree v-model="contractDetail['customerContactId']" :disabled="!editor" />
|
|
|
|
|
|
+ <UserOrgTree v-model="contractDetail['areaManager']" :disabled="!editor" />
|
|
</td>
|
|
</td>
|
|
<td class="th"></td>
|
|
<td class="th"></td>
|
|
<td></td>
|
|
<td></td>
|
|
@@ -222,14 +234,15 @@
|
|
</template>
|
|
</template>
|
|
<template v-else>
|
|
<template v-else>
|
|
<div class="titleBox">
|
|
<div class="titleBox">
|
|
- <h2>江山市自然资源业务数字化管理系统云服务器租赁合同</h2>
|
|
|
|
|
|
+ <h2>{{ contractDetail?.name ?? '' }} </h2>
|
|
<span class="tag">已签</span>
|
|
<span class="tag">已签</span>
|
|
<span class="tag">未付清</span>
|
|
<span class="tag">未付清</span>
|
|
</div>
|
|
</div>
|
|
<div class="tableBox tableBox—first">
|
|
<div class="tableBox tableBox—first">
|
|
<h4><i class="icon"></i>基本信息</h4>
|
|
<h4><i class="icon"></i>基本信息</h4>
|
|
<ul>
|
|
<ul>
|
|
- <li>编辑合同</li>
|
|
|
|
|
|
+ <li v-if="editor === false" @click="handleEdit">编辑合同</li>
|
|
|
|
+ <li v-else @click="saveContractHandle">保存合同</li>
|
|
<li>用款申请</li>
|
|
<li>用款申请</li>
|
|
</ul>
|
|
</ul>
|
|
<table>
|
|
<table>
|
|
@@ -258,7 +271,13 @@
|
|
<tr>
|
|
<tr>
|
|
<td class="th">委托方:</td>
|
|
<td class="th">委托方:</td>
|
|
<td>
|
|
<td>
|
|
- <el-input v-model="contractDetail['clientId']" :disabled="!editor" />
|
|
|
|
|
|
+ <TreeSelectV2
|
|
|
|
+ :data="contractTree"
|
|
|
|
+ :props="{ label: 'name', value: 'id' }"
|
|
|
|
+ v-model="contractDetail['clientId']"
|
|
|
|
+ :filter-method="filterNodeMethod"
|
|
|
|
+ :disabled="!editor"
|
|
|
|
+ />
|
|
</td>
|
|
</td>
|
|
<td class="th">申请人:</td>
|
|
<td class="th">申请人:</td>
|
|
<td>
|
|
<td>
|
|
@@ -326,11 +345,19 @@
|
|
</template>
|
|
</template>
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
import { useRoute } from 'vue-router'
|
|
import { useRoute } from 'vue-router'
|
|
|
|
+import { filterNodeMethod } from '@/utils/tree'
|
|
|
|
+import TreeSelectV2 from '@/components/TreeSelectV2/index.vue'
|
|
import UserOrgTree from '@/views/OaSystem/components/UserOrgTree/index.vue'
|
|
import UserOrgTree from '@/views/OaSystem/components/UserOrgTree/index.vue'
|
|
import ContractMilestone from '@/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractMilestone.vue'
|
|
import ContractMilestone from '@/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractMilestone.vue'
|
|
import ContractReturnedMoney from '@/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractReturnedMoney.vue'
|
|
import ContractReturnedMoney from '@/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractReturnedMoney.vue'
|
|
import ContractSharing from '@/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractSharing.vue'
|
|
import ContractSharing from '@/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractSharing.vue'
|
|
-import { getContractsByProject, putContract } from '@/service/contract'
|
|
|
|
|
|
+import {
|
|
|
|
+ getContractsByProject,
|
|
|
|
+ putContract,
|
|
|
|
+ startContractInvoice,
|
|
|
|
+ queryCustomerTree,
|
|
|
|
+ queryCompanyTree
|
|
|
|
+} from '@/service/contract'
|
|
import { useQuery, useMutation } from '@tanstack/vue-query'
|
|
import { useQuery, useMutation } from '@tanstack/vue-query'
|
|
import { Contract } from '@/interface/contract'
|
|
import { Contract } from '@/interface/contract'
|
|
import { ref } from 'vue'
|
|
import { ref } from 'vue'
|
|
@@ -399,12 +426,25 @@ const handleEdit = () => {
|
|
editor.value = true
|
|
editor.value = true
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/***
|
|
|
|
+ * 查询委托方数据
|
|
|
|
+ * **/
|
|
|
|
+const { data: contractTree } = useQuery(['contractTree'], async () => await queryCustomerTree(), {
|
|
|
|
+ staleTime: Infinity
|
|
|
|
+})
|
|
|
|
+/***
|
|
|
|
+ * 查询受托方数据
|
|
|
|
+ * **/
|
|
|
|
+const { data: assigneeTree } = useQuery(['assigneeTree'], async () => await queryCompanyTree(), {
|
|
|
|
+ staleTime: Infinity
|
|
|
|
+})
|
|
/**
|
|
/**
|
|
* 切换子项目信息
|
|
* 切换子项目信息
|
|
* **/
|
|
* **/
|
|
const contractInfoIndex = ref<number>(0)
|
|
const contractInfoIndex = ref<number>(0)
|
|
const switchContractInfo = (item: any, key: number): void => {
|
|
const switchContractInfo = (item: any, key: number): void => {
|
|
contractInfoIndex.value = key
|
|
contractInfoIndex.value = key
|
|
|
|
+ contractDetail.value = item
|
|
}
|
|
}
|
|
|
|
|
|
/***
|
|
/***
|
|
@@ -436,6 +476,13 @@ const { mutate: saveContract } = useMutation(putContract, {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
const saveContractHandle = () => saveContract(contractDetail.value)
|
|
const saveContractHandle = () => saveContract(contractDetail.value)
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 发起开票申请流程
|
|
|
|
+ */
|
|
|
|
+const { mutate: startContractInvoiceMuate } = useMutation(startContractInvoice, {
|
|
|
|
+ onSuccess: (data) => openFlow(router, data, '开票申请')
|
|
|
|
+})
|
|
</script>
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
@import './index.scss';
|
|
@import './index.scss';
|