Forráskód Böngészése

转件完成关闭tag页面、打印打开新窗口

songxy 1 éve
szülő
commit
b4846ecc96

+ 3 - 0
client/src/LinkRouteMap.ts

@@ -22,6 +22,9 @@ export const LinkRouteMap: LinkRoute = {
   },
   流程日志: {
     path: 'ProcessLog'
+  },
+  报表打印: {
+    path: 'ReportPrint'
   }
 }
 

+ 4 - 0
client/src/main.ts

@@ -57,6 +57,10 @@ window.addEventListener('message', (evt) => {
   try {
     const eData = JSON.parse(evt.data)
     const payload = eData.data
+    if (eData.msgreceiveevent === 'closeTabByWindow') {
+      subscribe.emit('closeCurrentView', true)
+      return;
+    }
     if (payload && payload['title']) {
       const lRoutePayload = LinkRouteMap[payload['title']]
       if (lRoutePayload) {

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

@@ -136,6 +136,14 @@ const remainingRouter: AppRouteRecordRaw[] = [
           title: '流程日志'
         }
       },
+      {
+        path: 'ReportPrint',
+        component: () => import('@/views/OaSystem/officeCenter/createNewOffice/index.vue'),
+        name: 'ReportPrint',
+        meta: {
+          title: '报表打印'
+        }
+      },
       {
         path: 'newsEditor',
         component: () => import('@/views/OaSystem/newsCenter/newsSetting/editor.vue'),

+ 8 - 0
client/src/views/OaSystem/oaLayout/tagList.vue

@@ -145,6 +145,8 @@ import { ContextMenu, ContextMenuExpose } from '@/layout/components/ContextMenu'
 import { useI18n } from '@/hooks/web/useI18n'
 import { useDesign } from '@/hooks/web/useDesign'
 import draggable from 'vuedraggable'
+import vueRouter from '@/router'
+import subscribe from '@/utils/Subscribe'
 
 const router = useRouter()
 const { getPrefixCls } = useDesign()
@@ -242,6 +244,12 @@ const addTags = () => {
   })
   return false
 }
+//订阅流程中关闭message事件
+subscribe.on('closeCurrentView', (payload) => {
+  if (!payload) return
+  const view = vueRouter.currentRoute.value as RouteLocationNormalizedLoaded
+  closeSelectedTag(view)
+})
 // 关闭选中的tag
 const closeSelectedTag = (view: RouteLocationNormalizedLoaded) => {
   if (view?.meta?.affix) return

+ 3 - 9
client/src/views/OaSystem/projectCenter/projectBook/projectBook.vue

@@ -104,18 +104,12 @@
             <template #default="scope">{{ scope.$index + 1 }}</template>
           </el-table-column>
           <el-table-column :show-overflow-tooltip="true" prop="xmmc" label="项目名称" />
-          <el-table-column prop="xmbh" label="项目编号" width="180" />
-          <el-table-column prop="xzqmc" label="行政区" width="100">
-            <template #default="scope">
-              {{ district[scope.row.xzqdm] }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="projectTypeName" label="项目类别" width="120" />
           <el-table-column prop="zrbm" label="责任部门" width="200" />
           <el-table-column prop="xmjl" label="项目经理" width="120" />
-          <el-table-column prop="lxsj" label="立项时间" width="120" />
-          <el-table-column prop="yssj" label="验收时间" width="120" />
           <el-table-column prop="contractAmount" label="合同额" width="120" />
+          <el-table-column prop="receivableAmount" label="应收款" width="120" />
+          <el-table-column prop="contractBalance" label="合同余额" width="120" />
+          <el-table-column prop="projectCost" label="项目总成本" width="120" />
           <el-table-column prop="xmzt" label="项目状态" width="120">
             <template #default="scope">
               {{ xmztMap[scope.row.xmzt] }}

+ 1 - 1
client/src/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractMilestone.vue

@@ -24,7 +24,7 @@ const { mutate: getContractMilestoneListMutate } = useMutation(getContractMilest
 
 <template>
   <div class="tableBox tableLineBox">
-    <h4><i class="icon"></i>合同里程碑</h4>
+    <h4 class="td_title"><i class="icon"></i>合同里程碑</h4>
     <table>
       <thead>
         <tr>

+ 1 - 1
client/src/views/OaSystem/projectCenter/projectDetail/components/xmht/ContractReturnedMoney.vue

@@ -36,7 +36,7 @@ const invoiceTypeFilter: (val: number | string) => string = (val: number | strin
 
 <template>
   <div class="tableBox tableLineBox">
-    <h4><i class="icon"></i>回款详情</h4>
+    <h4 class="td_title"><i class="icon"></i>回款详情</h4>
     <table>
       <thead>
         <tr>

+ 1 - 1
client/src/views/OaSystem/projectCenter/projectDetail/components/xmht/index.scss

@@ -48,7 +48,7 @@
         }
       }
       >.tableBox {
-        >h4 {
+        h4.td_title {
           padding: 10px 0px;
           margin-top: 10px;
           display: flex;

+ 128 - 140
client/src/views/OaSystem/projectCenter/projectDetail/components/xmht/index.vue

@@ -53,7 +53,7 @@
           <span v-else-if="mContractDetail?.amountStatus === 4" class="tag">手动设置已付清</span>
         </div>
         <div class="tableBox tableBox—first">
-          <h4><i class="icon"></i>基本信息</h4>
+          <h4 class="td_title"><i class="icon"></i>基本信息</h4>
           <ul>
             <li v-if="editor === false" @click="handleEditor">编辑合同</li>
             <li v-else @click="saveContractHandle">保存合同</li>
@@ -136,7 +136,9 @@
             <tr>
               <td class="th">合同拿出日期:</td>
               <td>
+                <span v-if="!editor && !mContractDetail.contractOn"></span>
                 <el-date-picker
+                  v-else
                   style="width: 100%"
                   :disabled="!editor"
                   v-model="mContractDetail.contractOn"
@@ -147,7 +149,9 @@
               </td>
               <td class="th">合同拿回日期:</td>
               <td>
+                <span v-if="!editor && !mContractDetail.contractOff"></span>
                 <el-date-picker
+                  v-else
                   style="width: 100%"
                   :disabled="!editor"
                   v-model="mContractDetail.contractOff"
@@ -165,14 +169,9 @@
               <td class="th"></td>
               <td></td>
             </tr>
-          </table>
-        </div>
-        <div class="tableBox">
-          <h4><i class="icon"></i>验收信息</h4>
-          <table>
             <tr>
               <td class="th">付款条件:</td>
-              <td>
+              <td colspan="3" style="height: 120px">
                 <el-input
                   type="textarea"
                   :rows="5"
@@ -181,11 +180,7 @@
                 />
               </td>
             </tr>
-          </table>
-        </div>
-        <div class="tableBox">
-          <h4><i class="icon"></i>质保金</h4>
-          <table>
+            <h4 class="td_title"><i class="icon"></i>质保金</h4>
             <tr>
               <td class="th">质保金(元):</td>
               <td>{{ mContractDetail.qualityMoney }} </td>
@@ -197,7 +192,7 @@
           </table>
         </div>
         <div class="tableBox tableLineBox">
-          <h4><i class="icon"></i>税费与金额</h4>
+          <h4 class="td_title"><i class="icon"></i>税费与金额</h4>
           <table>
             <thead>
               <tr>
@@ -262,7 +257,7 @@
           </table>
         </div>
         <!-- <div class="tableBox">
-          <h4><i class="icon"></i>维护条款</h4>
+          <h4 class="td_title"><i class="icon"></i>维护条款</h4>
           <table>
             <tr>
               <td class="th">是否有维护期:</td>
@@ -338,7 +333,7 @@
           <span class="tag">未付清</span>
         </div>
         <div class="tableBox tableBox—first">
-          <h4><i class="icon"></i>基本信息</h4>
+          <h4 class="td_title"><i class="icon"></i>基本信息</h4>
           <ul>
             <li v-if="editor === false" @click="handleEditor">编辑合同</li>
             <li v-else @click="saveContractHandle">保存合同</li>
@@ -352,135 +347,128 @@
               >用款申请</li
             >
           </ul>
-          <table v-if="cContractDetail?.contractType == 2">
-            <tr>
-              <td class="th">分包理由:</td>
-              <td colspan="3">
-                <el-input v-model="cContractDetail.subReason" :disabled="!editor" />
-              </td>
-            </tr>
-            <tr>
-              <td class="th">分包金额(元):</td>
-              <td>
-                <el-input v-model="cContractDetail.subAmount" :disabled="!editor" />
-              </td>
-              <td class="th">供应商:</td>
-              <td>
-                <el-input v-model="cContractDetail.applyWorkerDept" :disabled="!editor" />
-              </td>
-            </tr>
-            <tr>
-              <td class="th">合同拿出日期:</td>
-              <td>
-                <el-date-picker
-                  style="width: 100%"
-                  :disabled="!editor"
-                  v-model="cContractDetail.contractOn"
-                  type="date"
-                  @change="($evt) => (cContractDetail.contractOn = $evt)"
-                  placeholder="请选择合同拿出时间"
-                />
-              </td>
-              <td class="th">合同拿回日期:</td>
-              <td>
-                <el-date-picker
-                  style="width: 100%"
-                  :disabled="!editor"
-                  v-model="cContractDetail.contractOff"
-                  type="date"
-                  @change="($evt) => (cContractDetail.contractOff = $evt)"
-                  placeholder="请选择合同拿回时间"
-                />
-              </td>
-            </tr>
-            <tr>
-              <td class="th">是否需要签订合同:</td>
-              <td>
-                <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>
-                <el-select
-                  style="width: 100%"
-                  v-model="cContractDetail.subShareWay"
-                  :disabled="!editor"
-                >
-                  <el-option label="全部由公司承担" :value="1" />
-                  <el-option label="全部由技术部门承担" :value="2" />
-                  <el-option label="由公司和技术部门按比例承担" :value="3" />
-                </el-select>
-              </td>
-            </tr>
-            <tr>
-              <td class="th">分包采购内容需求:</td>
-              <td colspan="3">
-                <el-input
-                  type="textarea"
-                  :rows="4"
-                  v-model="cContractDetail.purchaseRequirements"
-                  :disabled="!editor"
-                />
-              </td>
-            </tr>
-          </table>
-          <table v-else>
-            <tr>
-              <td class="th">外包包理由:</td>
-              <td colspan="3">
-                <el-input v-model="cContractDetail.subReason" :disabled="!editor" />
-              </td>
-            </tr>
-            <tr>
-              <td class="th">外包金额(元):</td>
-              <td>
-                <el-input v-model="cContractDetail.subAmount" :disabled="!editor" />
-              </td>
-              <td class="th">供应商:</td>
-              <td>
-                <el-input v-model="cContractDetail.applyWorkerDept" :disabled="!editor" />
-              </td>
-            </tr>
-            <tr>
-              <td class="th">是否需要签订合同:</td>
-              <td>
-                <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="cContractDetail.qualityControllerId" :disabled="!editor" />
-              </td>
-            </tr>
-            <tr>
-              <td class="th">备注:</td>
-              <td colspan="3">
-                <el-input
-                  type="textarea"
-                  :rows="4"
-                  v-model="cContractDetail.bz"
-                  :disabled="!editor"
-                />
-              </td>
-            </tr>
-          </table>
-        </div>
-        <div class="tableBox">
-          <h4><i class="icon"></i>验收信息</h4>
           <table>
+            <template v-if="cContractDetail?.contractType == 2">
+              <tr>
+                <td class="th">分包理由:</td>
+                <td colspan="3">
+                  <el-input v-model="cContractDetail.subReason" :disabled="!editor" />
+                </td>
+              </tr>
+              <tr>
+                <td class="th">分包金额(元):</td>
+                <td>
+                  <el-input v-model="cContractDetail.subAmount" :disabled="!editor" />
+                </td>
+                <td class="th">供应商:</td>
+                <td>
+                  <el-input v-model="cContractDetail.applyWorkerDept" :disabled="!editor" />
+                </td>
+              </tr>
+              <tr>
+                <td class="th">合同拿出日期:</td>
+                <td>
+                  <el-date-picker
+                    style="width: 100%"
+                    :disabled="!editor"
+                    v-model="cContractDetail.contractOn"
+                    type="date"
+                    @change="($evt) => (cContractDetail.contractOn = $evt)"
+                    placeholder="请选择合同拿出时间"
+                  />
+                </td>
+                <td class="th">合同拿回日期:</td>
+                <td>
+                  <el-date-picker
+                    style="width: 100%"
+                    :disabled="!editor"
+                    v-model="cContractDetail.contractOff"
+                    type="date"
+                    @change="($evt) => (cContractDetail.contractOff = $evt)"
+                    placeholder="请选择合同拿回时间"
+                  />
+                </td>
+              </tr>
+              <tr>
+                <td class="th">是否需要签订合同:</td>
+                <td>
+                  <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>
+                  <el-select
+                    style="width: 100%"
+                    v-model="cContractDetail.subShareWay"
+                    :disabled="!editor"
+                  >
+                    <el-option label="全部由公司承担" :value="1" />
+                    <el-option label="全部由技术部门承担" :value="2" />
+                    <el-option label="由公司和技术部门按比例承担" :value="3" />
+                  </el-select>
+                </td>
+              </tr>
+              <tr>
+                <td class="th">分包采购内容需求:</td>
+                <td colspan="3">
+                  <el-input
+                    type="textarea"
+                    :rows="4"
+                    v-model="cContractDetail.purchaseRequirements"
+                    :disabled="!editor"
+                  />
+                </td>
+              </tr>
+            </template>
+            <template v-else>
+              <tr>
+                <td class="th">外包包理由:</td>
+                <td colspan="3">
+                  <el-input v-model="cContractDetail.subReason" :disabled="!editor" />
+                </td>
+              </tr>
+              <tr>
+                <td class="th">外包金额(元):</td>
+                <td>
+                  <el-input v-model="cContractDetail.subAmount" :disabled="!editor" />
+                </td>
+                <td class="th">供应商:</td>
+                <td>
+                  <el-input v-model="cContractDetail.applyWorkerDept" :disabled="!editor" />
+                </td>
+              </tr>
+              <tr>
+                <td class="th">是否需要签订合同:</td>
+                <td>
+                  <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="cContractDetail.qualityControllerId" :disabled="!editor" />
+                </td>
+              </tr>
+              <tr>
+                <td class="th">备注:</td>
+                <td colspan="3">
+                  <el-input
+                    type="textarea"
+                    :rows="4"
+                    v-model="cContractDetail.bz"
+                    :disabled="!editor"
+                  />
+                </td>
+              </tr>
+            </template>
             <tr>
               <td class="th">付款条件:</td>
-              <td colspan="3">{{ cContractDetail?.paymentTerms ?? '' }}</td>
+              <td colspan="3" style="height: 120px">{{ cContractDetail?.paymentTerms ?? '' }}</td>
             </tr>
-          </table>
-        </div>
-        <div class="tableBox">
-          <h4><i class="icon"></i>财务信息</h4>
-          <table>
+            <h4 class="td_title"><i class="icon"></i>财务信息</h4>
             <tr>
               <td class="th">已付款金额(元):</td>
               <td>{{ calcInfo?.pay }}</td>