Kaynağa Gözat

fix: 修改流程页面打开方式

新增通用流程路由页面
修改输入框样式
hotchicken1996 1 yıl önce
ebeveyn
işleme
3082bb81af

+ 8 - 0
client/src/router/modules/remaining.ts

@@ -184,6 +184,14 @@ const remainingRouter: AppRouteRecordRaw[] = [
           title: '流程模版'
         }
       },
+      {
+        path: 'processContainer',
+        component: () => import('@/views/OaSystem/processContainer/index.vue'),
+        name: 'processContainer',
+        meta: {
+          title: ''
+        }
+      },
       {
         path: 'collectionDetail',
         component: () => import('@/views/OaSystem/home/collectionDetail.vue'),

+ 17 - 2
client/src/utils/flow.ts

@@ -1,3 +1,18 @@
-export const openFlow = (flowPath: string): void => {
-  window.open(flowPath)
+import { Router } from 'vue-router'
+
+/**
+ * 开启流程
+ * @param router
+ * @param flowPath  流程地址
+ * @param title  页面标签名
+ */
+export const openFlow = (router: Router, flowPath: string, title: string): void => {
+  // window.open(flowPath)
+  router.push({
+    path: '/processContainer',
+    query: {
+      url: flowPath,
+      title
+    }
+  })
 }

+ 4 - 3
client/src/views/OaSystem/oaLayout/tagList.vue

@@ -85,13 +85,14 @@
                 <div class="pBox">
                   <el-tooltip
                     effect="dark"
-                    :content="`${item.meta.title}${
-                      (item?.query?.name ?? '') !== '' ? `( ${item?.query?.name} )` : ''
-                    }`"
+                    :content="`${item.meta.title}
+                    ${item.meta.title === '' ? item?.query?.title ?? '' : ''}
+                    ${(item?.query?.name ?? '') !== '' ? `( ${item?.query?.name} )` : ''}`"
                     placement="top-start"
                   >
                     <p>
                       {{ item.meta.title }}
+                      {{ item.meta.title === '' ? item?.query?.title ?? '' : '' }}
                       <!-- 用于多开页面的区分展示(例如详情页)-->
                       <!-- {{ (item?.query?.name ?? '') !== '' ? `(${item?.query?.name})` : '' }}-->
                     </p>

+ 24 - 0
client/src/views/OaSystem/processContainer/index.vue

@@ -0,0 +1,24 @@
+<script setup lang="ts">
+/**
+ * 流程开启页面
+ */
+const { query } = useRoute()
+const { url } = query
+</script>
+
+<template>
+  <div class="process-container">
+    <iframe class="process-content" v-if="url" :src="url" frameBorder="0"></iframe>
+  </div>
+</template>
+
+<style scoped lang="scss">
+.process-container {
+  height: 100%;
+
+  .process-content {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>

+ 5 - 4
client/src/views/OaSystem/projectCenter/projectDetail/components/xmht/index.vue

@@ -297,7 +297,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import { useRoute } from 'vue-router'
+import { useRoute, useRouter } from 'vue-router'
 import UserOrgTree from '@/views/OaSystem/components/UserOrgTree/index.vue'
 import ContractMilestone from '@/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractMilestone.vue'
 import ContractReturnedMoney from '@/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractReturnedMoney.vue'
@@ -313,6 +313,7 @@ import { ref } from 'vue'
 import { openFlow } from '@/utils/flow'
 
 defineOptions({ name: 'XmhtComp' })
+const router = useRouter()
 const _mainProjectId: any = useRoute().query.id
 // 合同id ??是否存在
 const _toContractId = useRoute().query.contractId
@@ -367,15 +368,15 @@ const saveContractHandle = () => saveContract(contractDetail.value)
  * 发起分包合同申请
  */
 const { mutate: startSubcontractMutate } = useMutation(startSubcontract, {
-  onSuccess: (data) => openFlow(data)
+  onSuccess: (data) => openFlow(router, data, '分包申请')
 })
 const handleStartSubcontract = () => startSubcontractMutate(contractDetail.value.id)
 
 /**
- * 发起外合同申请
+ * 发起外合同申请
  */
 const { mutate: startOutsourcingMutate } = useMutation(startOutsourcing, {
-  onSuccess: (data) => openFlow(data)
+  onSuccess: (data) => openFlow(router, data, '外包申请')
 })
 const handleStartOutsourcing = () => startOutsourcingMutate(contractDetail.value.id)
 </script>

+ 7 - 3
client/src/views/OaSystem/projectCenter/projectDetail/projectDetail.vue

@@ -23,7 +23,9 @@
               v-if="contractData?.flowStatus != null"
               @confirm="handleStartContractSign"
             >
-              <li>合同签订</li>
+              <template #reference>
+                <li>合同签订</li>
+              </template>
             </el-popconfirm>
             <li v-else @click="handleStartContractSign">合同签订</li>
           </template>
@@ -94,6 +96,8 @@ import { useMutation, useQuery } from '@tanstack/vue-query'
 import { ProjectId } from '@/interface/project'
 import { getProjectWithChildrenById } from '@/service/project'
 
+const router = useRouter()
+
 const XmcbComp = defineAsyncComponent(() => {
   return import('./components/xmcb/index.vue')
 })
@@ -153,12 +157,12 @@ const { data: contractData } = useQuery(
     refetchOnWindowFocus: true
   }
 )
-
+console.log('contractData: ', unref(contractData))
 /**
  * 发起合同签订
  */
 const { mutate: startContractSignMutate } = useMutation(startContractSign, {
-  onSuccess: (data) => openFlow(data)
+  onSuccess: (data) => openFlow(router, data, '合同签订')
 })
 const handleStartContractSign = () => startContractSignMutate(projectId as ProjectId)
 </script>

+ 1 - 1
zjugis-business/src/main/resources/templates/FlowContract/apply.ftl

@@ -178,7 +178,7 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css' ]>
                           <td colspan="3">
                               <div class="form-group">
                                   <div class="form-item" style="margin: 10px 0;">
-                                      <div class="z-comp-textarea" name="contract$paymentTerms">
+                                      <div class="z-comp-textarea large" name="contract$paymentTerms">
                                           <textarea>${formEntity.paymentTerms!}</textarea>
                                       </div>
                                   </div>

+ 1 - 1
zjugis-business/src/main/resources/templates/FlowContract/purchaseApply.ftl

@@ -173,7 +173,7 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css' ]>
                             <td colspan="3">
                                 <div class="form-group">
                                     <div class="form-item" style="margin: 10px 0;">
-                                        <div class="z-comp-textarea" name="contract$paymentTerms">
+                                        <div class="z-comp-textarea large" name="contract$paymentTerms">
                                             <textarea>${formEntity.paymentTerms!}</textarea>
                                         </div>
                                     </div>

+ 5 - 0
zjugis-workflow/src/main/resources/static/all.css

@@ -3655,6 +3655,11 @@ box-sizing:border-box;
 font-size:14px;
 white-space:pre-wrap
 }
+
+.z-comp-textarea.large textarea{
+    height:160px;
+}
+
 .z-comp-selecttree .z-inputselect-dropdown{
 max-height:none
 }