Ver código fonte

项目详情优化

songxy 1 ano atrás
pai
commit
e1c7ffad65

+ 16 - 3
client/src/service/contract.ts

@@ -212,14 +212,27 @@ export const queryCompanyTree = async () => {
   return listToTree(contractList)
 }
 /**
- * 发起开票申请流程
+ * 发起开票申请流程
  * @param contractId
  */
-export const startContractInvoice = async (projectId?: string) => {
+export const startContractInvoice = async (contractId?: string) => {
   return await request.get(
     {
       url: '/contractInvoice/process',
-      params: { projectId }
+      params: { contractId }
+    },
+    '/business'
+  )
+}
+/**
+ * 发起用款申请流程
+ * @param contractId
+ */
+export const startUseMoney = async (payload: { projectId?: string; supplierId?: string }) => {
+  return await request.get(
+    {
+      url: '/UseMoney/contractProcess',
+      params: { projectId: payload.projectId, supplierId: payload.supplierId }
     },
     '/business'
   )

+ 6 - 2
client/src/views/OaSystem/financialManagement/kpglPage/index.vue

@@ -143,7 +143,7 @@
         <el-table-column
           :show-overflow-tooltip="true"
           align="center"
-          prop="xmmc"
+          prop="xsry"
           label="区域经理"
         />
         <el-table-column
@@ -185,7 +185,7 @@
           <template #default="scope">
             <div class="operateBtnGroup">
               <span @click="processHandler(scope.row)">查看</span>
-              <span @click="operateClick(scope.row)">回款登记</span>
+              <span @click="remittanceRegistration(scope.row)">回款登记</span>
             </div>
           </template>
         </el-table-column>
@@ -291,6 +291,10 @@ const processHandler = (row: any) => {
     contractId: row.contractId
   })
 }
+/**
+ * 发起回款登记
+ */
+const remittanceRegistration = (row: any) => {}
 /** 初始化 */
 onMounted(() => {
   getList()

+ 49 - 24
client/src/views/OaSystem/marketCenter/contractSubOut/applyIndex.vue

@@ -39,7 +39,7 @@
             <img src="@/assets/imgs/OA/open.png" class="mr-8px" alt="" />
             发起签订</el-button
           >
-          <el-button type="danger">
+          <el-button type="danger" @click="useMoneySubmit">
             <img src="@/assets/imgs/OA/open.png" class="mr-8px" alt="" />
             发起用款</el-button
           >
@@ -76,20 +76,16 @@
           </el-table-column>
           <el-table-column :show-overflow-tooltip="true" prop="contractName" label="合同名称" />
           <el-table-column :show-overflow-tooltip="true" prop="applyType" label="合同类型">
-            <template #default="scope">{{
-              scope.row.applyType === 1 ? '分包合同' : scope.row.applyType === 2 ? '外包合同' : ''
-            }}</template>
+            <template #default="scope">{{ contractType[scope.row.applyType] }}</template>
           </el-table-column>
           <el-table-column :show-overflow-tooltip="true" prop="projectName" label="项目名称" />
           <el-table-column :show-overflow-tooltip="true" prop="projectNumber" label="项目编号" />
           <el-table-column prop="zrbm" label="责任部门" width="180" />
           <el-table-column prop="contractAmount" label="分/外包合同额" width="160" />
-          <el-table-column prop="zrbm" label="供应商" width="160" />
+          <el-table-column prop="client" label="供应商" width="160" />
           <el-table-column prop="applyWorker" label="申请人" width="160" />
           <el-table-column label="是否签合同" width="120">
-            <template #default="scope">{{
-              scope.row.isSign === 1 ? '是' : scope.row.isSign === 0 ? '否' : ''
-            }}</template>
+            <template #default="scope">{{ isSignType[scope.row.isSign] }}</template>
           </el-table-column>
           <el-table-column label="操作" fixed="right" width="80">
             <template #default="scope">
@@ -116,18 +112,28 @@
 <script setup lang="ts">
 import { useRouter } from 'vue-router'
 import { ElMessage } from 'element-plus'
+import { PageParam } from '@/interface/common'
+import { openFlow } from '@/utils/flow'
 import { getAssetURL } from '@/utils/auth'
 import request from '@/config/axios'
 
 defineOptions({ name: 'ProjectBook' })
+const contractType = {
+  1: '分包合同',
+  2: '外包合同'
+} as {
+  [key: number]: string
+}
+const isSignType = {
+  1: '是',
+  0: '否'
+} as {
+  [key: number]: string
+}
 const router = useRouter()
 const tableRef: any = ref(null)
 const tableHeight: any = ref(0)
 
-interface PageParam {
-  pageNo: number
-  pageSize: number
-}
 interface QueryParams extends PageParam {
   projectName: string
   projectNumber: string
@@ -193,11 +199,13 @@ const currentProcess = ref<{
   id: string
   applyType: number
   isSign: number
+  projectId?: string
+  clientId?: string
 } | null>(null)
 const handleSelectionChange = (arrs) => {
   if (arrs.length === 0) return
+  console.log(arrs)
   const item = arrs[arrs.length - 1]
-  alert(item.isSign)
   currentProcess.value = {
     id: item.id,
     applyType: item.applyType,
@@ -216,17 +224,34 @@ const processSubmit = async (): Promise<void> => {
   } else if (currentProcess.value?.applyType === 2) {
     urlApi = `/outsourcing/process`
   }
-  const result = await request.get(
-    {
-      url: urlApi,
-      params: {
-        applyId: currentProcess.value?.id
-      }
-    },
-    '/business'
-  )
-  console.log('result----------------------------')
-  console.log(result)
+  request
+    .get(
+      {
+        url: urlApi,
+        params: { applyId: currentProcess.value?.id }
+      },
+      '/business'
+    )
+    .then((data) => {
+      openFlow(router, data, '签订申请')
+    })
+}
+const useMoneySubmit = (): void => {
+  const urlApi: string = '/UseMoney/contractProcess'
+  request
+    .get(
+      {
+        url: urlApi,
+        params: {
+          projectId: currentProcess.value?.projectId,
+          supplierId: currentProcess.value?.clientId
+        }
+      },
+      '/business'
+    )
+    .then((data) => {
+      openFlow(router, data, '用款申请')
+    })
 }
 const operateClick = (row: any) => {
   router.push({

+ 8 - 3
client/src/views/OaSystem/projectCenter/projectDetail/components/xmcb/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="_ProjectDetail_xmxx">
     <div class="header">
-      <el-form v-if="projectTypeList.length > 1">
+      <el-form v-if="cProjectNum > 0">
         <el-form-item label="项目选择:">
           <el-select
             v-model="projectId"
@@ -111,12 +111,14 @@ const projectId = ref<string>('-1')
 interface ProjectType {
   value: string
   label: string
+  type?: number // 0 主项目 1 子项目
 }
 const defaultProjectType: ProjectType = {
   label: '全部',
   value: '-1'
 }
 const projectTypeList = ref<ProjectType[]>([defaultProjectType])
+const cProjectNum = ref<number>(0)
 
 /**
  * 根据项目ID获取项目和子项目Select
@@ -126,13 +128,16 @@ const queryProjectWithChildrenById = async (projectId: string) => {
   const resultData = await getProjectWithChildrenById(projectId)
   projectTypeList.value.push({
     label: resultData['xmmc'],
-    value: resultData['id']
+    value: resultData['id'],
+    type: 0
   })
   if (resultData['children']) {
+    cProjectNum.value = resultData['children'].length
     const lists = resultData['children'].map((item) => {
       return {
         label: item['xmmc'],
-        value: item['id']
+        value: item['id'],
+        type: 1
       }
     })
     projectTypeList.value.push(...lists)

+ 60 - 0
client/src/views/OaSystem/projectCenter/projectDetail/components/xmht/common.ts

@@ -0,0 +1,60 @@
+export const contractTypeFilter = {
+  1: '主合同',
+  2: '分包合同',
+  3: '外包合同'
+} as {
+  [key: number]: string
+}
+
+export interface TypeSelectInterface {
+  label: string
+  value: string | number
+}
+export const mainTypeList = shallowReactive<TypeSelectInterface[]>([
+  {
+    label: '规划类',
+    value: 1
+  },
+  {
+    label: '数据工程类',
+    value: 2
+  },
+  {
+    label: '软件类',
+    value: 3
+  },
+  {
+    label: '采购类',
+    value: 4
+  }
+])
+export const secondTypeList = shallowReactive<TypeSelectInterface[]>([
+  {
+    label: '普通',
+    value: 1
+  },
+  {
+    label: '技贸',
+    value: 2
+  },
+  {
+    label: '入围',
+    value: 3
+  },
+  {
+    label: '补充协议/变更',
+    value: 4
+  },
+  {
+    label: '分包',
+    value: 5
+  },
+  {
+    label: '外包',
+    value: 6
+  },
+  {
+    label: '采购',
+    value: 7
+  }
+])

+ 92 - 131
client/src/views/OaSystem/projectCenter/projectDetail/components/xmht/index.vue

@@ -3,21 +3,21 @@
     <div class="header">
       <ul
         class="contractTagList"
-        v-if="(contractDetails?.length ?? 0) > 1 || (childrenContracts?.length ?? 0) > 0"
+        v-if="(mContractDetails?.length ?? 0) > 1 || (childrenContracts?.length ?? 0) > 0"
       >
-        <template v-if="(contractDetails?.length ?? 0) > 1">
+        <template v-if="(mContractDetails?.length ?? 0) > 1">
           <el-popover placement="bottom-start" trigger="hover">
             <template #reference>
               <li
                 :class="{ active: contractInfoIndex === 0 }"
-                @click="switchContractInfo(contractDetails[mainContractIndex], 0)"
+                @click="switchContractInfo(mContractDetails[mainContractIndex], 0)"
                 >主合同-{{ mainContractIndex + 1 }}
               </li>
             </template>
             <template #default>
               <ul class="contractPopover">
                 <li
-                  v-for="(item, index) in contractDetails"
+                  v-for="(item, index) in mContractDetails"
                   :key="index"
                   @click="switchContractInfo(item, 0, index)"
                   >主合同-{{ index + 1 }}
@@ -29,7 +29,7 @@
         <template v-else>
           <li
             :class="{ active: contractInfoIndex === 0 }"
-            @click="switchContractInfo(contractDetails[0], 0)"
+            @click="switchContractInfo(mContractDetails[0], 0)"
             >主合同
           </li>
         </template>
@@ -46,31 +46,39 @@
     <div class="content">
       <template v-if="contractInfoIndex === 0">
         <div class="titleBox">
-          <h2>{{ mainContractDetail?.name ?? '' }} </h2>
-          <span v-if="mainContractDetail?.amountStatus === 1" class="tag">已签</span>
-          <span v-else-if="mainContractDetail?.amountStatus === 2" class="tag">未付清</span>
-          <span v-else-if="mainContractDetail?.amountStatus === 3" class="tag">已付清</span>
-          <span v-else-if="mainContractDetail?.amountStatus === 4" class="tag">手动设置已付清</span>
+          <h2>{{ mContractDetail?.name ?? '' }} </h2>
+          <span v-if="mContractDetail?.amountStatus === 1" class="tag">已签</span>
+          <span v-else-if="mContractDetail?.amountStatus === 2" class="tag">未付清</span>
+          <span v-else-if="mContractDetail?.amountStatus === 3" class="tag">已付清</span>
+          <span v-else-if="mContractDetail?.amountStatus === 4" class="tag">手动设置已付清</span>
         </div>
         <div class="tableBox tableBox—first">
           <h4><i class="icon"></i>基本信息</h4>
           <ul>
             <li v-if="editor === false" @click="handleEditor">编辑合同</li>
             <li v-else @click="saveContractHandle">保存合同</li>
-            <li>用款申请</li>
-            <li @click="() => startContractInvoiceMuate(mainContractDetail?.id)">开票申请</li>
+            <li
+              @click="
+                startUseMoneyMuate({
+                  projectId: mContractDetail?.projectId,
+                  supplierId: mContractDetail?.clientId
+                })
+              "
+              >用款申请</li
+            >
+            <li @click="() => startContractInvoiceMuate(mContractDetail?.id)">开票申请</li>
           </ul>
           <table>
             <tr>
               <td class="th">合同编号:</td>
               <td>
-                <el-input v-model="mainContractDetail.contractNumber" :disabled="!editor" />
+                <el-input v-model="mContractDetail.contractNumber" :disabled="!editor" />
               </td>
               <td class="th">合同主类型:</td>
               <td>
                 <el-select
                   style="width: 100%"
-                  v-model="mainContractDetail.mainType"
+                  v-model="mContractDetail.mainType"
                   :disabled="!editor"
                 >
                   <el-option
@@ -88,7 +96,7 @@
                 <TreeSelectV2
                   :data="contractTree"
                   :props="{ label: 'name', value: 'id' }"
-                  v-model="mainContractDetail.clientId"
+                  v-model="mContractDetail.clientId"
                   :filter-method="filterNodeMethod"
                   :disabled="!editor"
                 />
@@ -97,7 +105,7 @@
               <td>
                 <el-select
                   style="width: 100%"
-                  v-model="mainContractDetail.secondType"
+                  v-model="mContractDetail.secondType"
                   :disabled="!editor"
                 >
                   <el-option
@@ -112,14 +120,14 @@
             <tr>
               <td class="th">委托方编号:</td>
               <td>
-                <el-input v-model="mainContractDetail.clientNumber" :disabled="!editor" />
+                <el-input v-model="mContractDetail.clientNumber" :disabled="!editor" />
               </td>
               <td class="th">受托方:</td>
               <td>
                 <TreeSelectV2
                   :data="assigneeTree"
                   :props="{ label: 'name', value: 'id' }"
-                  v-model="mainContractDetail.assigneeId"
+                  v-model="mContractDetail.assigneeId"
                   :filter-method="filterNodeMethod"
                   :disabled="!editor"
                 />
@@ -131,7 +139,7 @@
                 <el-date-picker
                   style="width: 100%"
                   :disabled="!editor"
-                  v-model="mainContractDetail.contractOn"
+                  v-model="mContractDetail.contractOn"
                   type="date"
                   value-format="YYYY-MM-DD"
                   placeholder="请选择合同拿出时间"
@@ -142,7 +150,7 @@
                 <el-date-picker
                   style="width: 100%"
                   :disabled="!editor"
-                  v-model="mainContractDetail.contractOff"
+                  v-model="mContractDetail.contractOff"
                   type="date"
                   value-format="YYYY-MM-DD"
                   placeholder="请选择合同拿回时间"
@@ -152,7 +160,7 @@
             <tr>
               <td class="th">销售经理:</td>
               <td>
-                <UserOrgTree v-model="mainContractDetail.areaManagerId" :disabled="!editor" />
+                <UserOrgTree v-model="mContractDetail.areaManagerId" :disabled="!editor" />
               </td>
               <td class="th"></td>
               <td></td>
@@ -168,7 +176,7 @@
                 <el-input
                   type="textarea"
                   :rows="5"
-                  v-model="mainContractDetail.paymentTerms"
+                  v-model="mContractDetail.paymentTerms"
                   :disabled="!editor"
                 />
               </td>
@@ -180,10 +188,10 @@
           <table>
             <tr>
               <td class="th">质保金(元):</td>
-              <td>{{ mainContractDetail.qualityMoney }} </td>
+              <td>{{ mContractDetail.qualityMoney }} </td>
               <td class="th">质保金状态:</td>
               <td>
-                {{ mainContractDetail.qualityMoneyStatus }}
+                {{ mContractDetail.qualityMoneyStatus }}
               </td>
             </tr>
           </table>
@@ -208,13 +216,13 @@
                 </td>
                 <td>0</td>
                 <td rowspan="5">
-                  <el-input v-model="mainContractDetail.taxHsjeJskf" :disabled="!editor" />
+                  <el-input v-model="mContractDetail.taxHsjeJskf" :disabled="!editor" />
                 </td>
                 <td rowspan="5">
-                  <el-input v-model="mainContractDetail.taxBhsze" :disabled="!editor" />
+                  <el-input v-model="mContractDetail.taxBhsze" :disabled="!editor" />
                 </td>
                 <td rowspan="5">
-                  <el-input v-model="mainContractDetail.taxSoftpatent" :disabled="!editor" />
+                  <el-input v-model="mContractDetail.taxSoftpatent" :disabled="!editor" />
                 </td>
               </tr>
               <tr>
@@ -223,7 +231,7 @@
                   服务
                 </td>
                 <td>
-                  <el-input v-model="mainContractDetail.taxHsjeFw" :disabled="!editor" />
+                  <el-input v-model="mContractDetail.taxHsjeFw" :disabled="!editor" />
                 </td>
               </tr>
               <tr>
@@ -232,7 +240,7 @@
                   产品软件
                 </td>
                 <td>
-                  <el-input v-model="mainContractDetail.taxHsjeRjcp" :disabled="!editor" />
+                  <el-input v-model="mContractDetail.taxHsjeRjcp" :disabled="!editor" />
                 </td>
               </tr>
               <tr>
@@ -241,13 +249,13 @@
                   硬件(平板等)
                 </td>
                 <td>
-                  <el-input v-model="mainContractDetail.taxHsjeYj" :disabled="!editor" />
+                  <el-input v-model="mContractDetail.taxHsjeYj" :disabled="!editor" />
                 </td>
               </tr>
               <tr class="subtotal">
                 <td> 小计</td>
                 <td>
-                  <el-input v-model="mainContractDetail.taxHsjeTotal" :disabled="!editor" />
+                  <el-input v-model="mContractDetail.taxHsjeTotal" :disabled="!editor" />
                 </td>
               </tr>
             </tbody>
@@ -259,14 +267,14 @@
             <tr>
               <td class="th">是否有维护期:</td>
               <td>
-                <el-radio-group v-model="childContractDetail.whtkIWhq" :disabled="!editor">
+                <el-radio-group v-model="cContractDetail.whtkIWhq" :disabled="!editor">
                   <el-radio :label="1">是</el-radio>
                   <el-radio :label="0">否</el-radio>
                 </el-radio-group>
               </td>
               <td class="th">是否免费维护:</td>
               <td>
-                <el-radio-group v-model="childContractDetail.whtkIMfwh" :disabled="!editor">
+                <el-radio-group v-model="cContractDetail.whtkIMfwh" :disabled="!editor">
                   <el-radio :label="1">是</el-radio>
                   <el-radio :label="0">否</el-radio>
                 </el-radio-group>
@@ -278,7 +286,7 @@
                 <el-date-picker
                   style="width: 100%"
                   :disabled="!editor"
-                  v-model="mainContractDetail.whtkWhrqBegin"
+                  v-model="mContractDetail.whtkWhrqBegin"
                   type="date"
                   value-format="YYYY-MM-DD"
                   placeholder="请选择维护开始日期"
@@ -289,7 +297,7 @@
                 <el-date-picker
                   style="width: 100%"
                   :disabled="!editor"
-                  v-model="mainContractDetail.whtkWhrqEnd"
+                  v-model="mContractDetail.whtkWhrqEnd"
                   type="date"
                   value-format="YYYY-MM-DD"
                   placeholder="请选择维护截止日期"
@@ -302,7 +310,7 @@
                 <el-input
                   type="textarea"
                   :rows="5"
-                  v-model="mainContractDetail.specialClause"
+                  v-model="mContractDetail.specialClause"
                   :disabled="!editor"
               /></td>
             </tr>
@@ -312,20 +320,20 @@
                 <el-input
                   type="textarea"
                   :rows="5"
-                  v-model="mainContractDetail.bz"
+                  v-model="mContractDetail.bz"
                   :disabled="!editor"
               /></td>
             </tr>
           </table>
         </div> -->
         <!-- 合同里程碑 -->
-        <ContractMilestone :contractId="mainContractDetail?.id" />
+        <ContractMilestone :contractId="mContractDetail?.id" />
         <!-- 回款 -->
-        <ContractReturnedMoney :contractId="mainContractDetail?.id" />
+        <ContractReturnedMoney :contractId="mContractDetail?.id" />
       </template>
       <template v-else>
         <div class="titleBox">
-          <h2>{{ childContractDetail?.name ?? '' }} </h2>
+          <h2>{{ cContractDetail?.name ?? '' }} </h2>
           <span class="tag">已签</span>
           <span class="tag">未付清</span>
         </div>
@@ -334,23 +342,31 @@
           <ul>
             <li v-if="editor === false" @click="handleEditor">编辑合同</li>
             <li v-else @click="saveContractHandle">保存合同</li>
-            <li>用款申请</li>
+            <li
+              @click="
+                startUseMoneyMuate({
+                  projectId: mContractDetail?.projectId,
+                  supplierId: cContractDetail?.clientId
+                })
+              "
+              >用款申请</li
+            >
           </ul>
-          <table v-if="childContractDetail?.contractType == 2">
+          <table v-if="cContractDetail?.contractType == 2">
             <tr>
               <td class="th">分包理由:</td>
               <td colspan="3">
-                <el-input v-model="childContractDetail.subReason" :disabled="!editor" />
+                <el-input v-model="cContractDetail.subReason" :disabled="!editor" />
               </td>
             </tr>
             <tr>
               <td class="th">分包金额(元):</td>
               <td>
-                <el-input v-model="childContractDetail.subAmount" :disabled="!editor" />
+                <el-input v-model="cContractDetail.subAmount" :disabled="!editor" />
               </td>
               <td class="th">供应商:</td>
               <td>
-                <el-input v-model="childContractDetail.applyWorkerDept" :disabled="!editor" />
+                <el-input v-model="cContractDetail.applyWorkerDept" :disabled="!editor" />
               </td>
             </tr>
             <tr>
@@ -359,9 +375,9 @@
                 <el-date-picker
                   style="width: 100%"
                   :disabled="!editor"
-                  v-model="childContractDetail.contractOn"
+                  v-model="cContractDetail.contractOn"
                   type="date"
-                  @change="($evt) => (childContractDetail.contractOn = $evt)"
+                  @change="($evt) => (cContractDetail.contractOn = $evt)"
                   placeholder="请选择合同拿出时间"
                 />
               </td>
@@ -370,9 +386,9 @@
                 <el-date-picker
                   style="width: 100%"
                   :disabled="!editor"
-                  v-model="childContractDetail.contractOff"
+                  v-model="cContractDetail.contractOff"
                   type="date"
-                  @change="($evt) => (childContractDetail.contractOff = $evt)"
+                  @change="($evt) => (cContractDetail.contractOff = $evt)"
                   placeholder="请选择合同拿回时间"
                 />
               </td>
@@ -380,7 +396,7 @@
             <tr>
               <td class="th">是否需要签订合同:</td>
               <td>
-                <el-radio-group v-model="childContractDetail.isSign" :disabled="!editor">
+                <el-radio-group v-model="cContractDetail.isSign" :disabled="!editor">
                   <el-radio :label="1">是</el-radio>
                   <el-radio :label="0">否</el-radio>
                 </el-radio-group>
@@ -389,7 +405,7 @@
               <td>
                 <el-select
                   style="width: 100%"
-                  v-model="childContractDetail.subShareWay"
+                  v-model="cContractDetail.subShareWay"
                   :disabled="!editor"
                 >
                   <el-option label="全部由公司承担" :value="1" />
@@ -404,7 +420,7 @@
                 <el-input
                   type="textarea"
                   :rows="4"
-                  v-model="childContractDetail.purchaseRequirements"
+                  v-model="cContractDetail.purchaseRequirements"
                   :disabled="!editor"
                 />
               </td>
@@ -414,33 +430,30 @@
             <tr>
               <td class="th">外包包理由:</td>
               <td colspan="3">
-                <el-input v-model="childContractDetail.subReason" :disabled="!editor" />
+                <el-input v-model="cContractDetail.subReason" :disabled="!editor" />
               </td>
             </tr>
             <tr>
               <td class="th">外包金额(元):</td>
               <td>
-                <el-input v-model="childContractDetail.subAmount" :disabled="!editor" />
+                <el-input v-model="cContractDetail.subAmount" :disabled="!editor" />
               </td>
               <td class="th">供应商:</td>
               <td>
-                <el-input v-model="childContractDetail.applyWorkerDept" :disabled="!editor" />
+                <el-input v-model="cContractDetail.applyWorkerDept" :disabled="!editor" />
               </td>
             </tr>
             <tr>
               <td class="th">是否需要签订合同:</td>
               <td>
-                <el-radio-group v-model="childContractDetail.isSign" :disabled="!editor">
+                <el-radio-group v-model="cContractDetail.isSign" :disabled="!editor">
                   <el-radio :label="1">是</el-radio>
                   <el-radio :label="0">否</el-radio>
                 </el-radio-group>
               </td>
               <td class="th">质量把控人:</td>
               <td>
-                <UserOrgTree
-                  v-model="childContractDetail.qualityControllerId"
-                  :disabled="!editor"
-                />
+                <UserOrgTree v-model="cContractDetail.qualityControllerId" :disabled="!editor" />
               </td>
             </tr>
             <tr>
@@ -449,7 +462,7 @@
                 <el-input
                   type="textarea"
                   :rows="4"
-                  v-model="childContractDetail.bz"
+                  v-model="cContractDetail.bz"
                   :disabled="!editor"
                 />
               </td>
@@ -461,7 +474,7 @@
           <table>
             <tr>
               <td class="th">付款条件:</td>
-              <td colspan="3">{{ childContractDetail?.paymentTerms ?? '' }}</td>
+              <td colspan="3">{{ cContractDetail?.paymentTerms ?? '' }}</td>
             </tr>
           </table>
         </div>
@@ -491,6 +504,7 @@ import ContractReturnedMoney from '@/views/OaSystem/projectCenter/projectDetail/
 import {
   getContractsByProject,
   putContract,
+  startUseMoney,
   startContractInvoice,
   queryCustomerTree,
   queryCompanyTree,
@@ -498,73 +512,14 @@ import {
 } from '@/service/contract'
 import { useQuery, useMutation } from '@tanstack/vue-query'
 import { Contract } from '@/interface/contract'
-import { ref } from 'vue'
+import { contractTypeFilter, mainTypeList, secondTypeList } from './common'
 
 defineOptions({ name: 'XmhtComp' })
 const _mainProjectId: any = useRoute().query.id
-interface TypeSelectInterface {
-  label: string
-  value: string | number
-}
-const contractTypeFilter = {
-  1: '主合同',
-  2: '分包合同',
-  3: '外包合同'
-} as {
-  [key: number]: string
-}
-const mainTypeList = shallowReactive<TypeSelectInterface[]>([
-  {
-    label: '规划类',
-    value: 1
-  },
-  {
-    label: '数据工程类',
-    value: 2
-  },
-  {
-    label: '软件类',
-    value: 3
-  },
-  {
-    label: '采购类',
-    value: 4
-  }
-])
-const secondTypeList = shallowReactive<TypeSelectInterface[]>([
-  {
-    label: '普通',
-    value: 1
-  },
-  {
-    label: '技贸',
-    value: 2
-  },
-  {
-    label: '入围',
-    value: 3
-  },
-  {
-    label: '补充协议/变更',
-    value: 4
-  },
-  {
-    label: '分包',
-    value: 5
-  },
-  {
-    label: '外包',
-    value: 6
-  },
-  {
-    label: '采购',
-    value: 7
-  }
-])
 const editor = ref<Boolean>(false)
-const mainContractDetail = ref<Contract>({} as Contract)
-const childContractDetail = ref<any>()
-const contractDetails = ref<any[]>([])
+const mContractDetail = ref<Contract>({} as Contract)
+const cContractDetail = ref<any>()
+const mContractDetails = ref<any[]>([])
 const childrenContracts = ref<any[]>([])
 /***
  * 查询主合同和子合同详情数据: 存在多个主合同(兼容之前项目合同),一般来说子合同只存在最新主合同
@@ -583,8 +538,8 @@ const { refetch } = useQuery(
           break
         }
       }
-      contractDetails.value = tData
-      mainContractDetail.value = tData[0] //初始化主合同
+      mContractDetails.value = tData
+      mContractDetail.value = tData[0] //初始化主合同
     }
   }
 )
@@ -620,12 +575,12 @@ const switchContractInfo = (item: any, key: number, mKey?: number): void => {
   contractInfoIndex.value = key
   if (key === 0) {
     //主合同
-    mainContractDetail.value = item
+    mContractDetail.value = item
     if (mKey) {
       mainContractIndex.value = mKey
     }
   } else {
-    childContractDetail.value = item
+    cContractDetail.value = item
     queryContractPaymentCalcMutate(item.id)
   }
 }
@@ -633,9 +588,9 @@ const switchContractInfo = (item: any, key: number, mKey?: number): void => {
 const saveContractHandle = () => {
   if (contractInfoIndex.value === 0) {
     //主合同
-    saveContract(mainContractDetail.value)
+    saveContract(mContractDetail.value)
   } else {
-    saveContract(childContractDetail.value)
+    saveContract(cContractDetail.value)
   }
 }
 /**
@@ -663,6 +618,12 @@ const router = useRouter()
 const { mutate: startContractInvoiceMuate } = useMutation(startContractInvoice, {
   onSuccess: (data) => openFlow(router, data, '开票申请')
 })
+/**
+ * 发起用款申请
+ * **/
+const { mutate: startUseMoneyMuate } = useMutation(startUseMoney, {
+  onSuccess: (data) => openFlow(router, data, '用款申请')
+})
 </script>
 <style lang="scss" scoped>
 @import './index.scss';

+ 1 - 5
client/src/views/OaSystem/projectCenter/projectDetail/projectDetail.vue

@@ -160,11 +160,7 @@ const processLookHandle = () => {
     query: {
       url: `${
         import.meta.env.VITE_PROCESS_DETAIL_URI
-      }/IFlowInstance/redirectFlowPage?flowInstanceId=018d59d0f09f0a07ad8e8d3e98270145`
-
-      //   url: `${
-      //   import.meta.env.PROCESS_DETAIL_URI
-      // }/IFlowInstance/redirectFlowPage?flowInstanceId=${projectDetail.value?.instanceId}`
+      }/IFlowInstance/redirectFlowPage?flowInstanceId=${projectDetail.value?.instanceId}`
     }
   })
 }