Просмотр исходного кода

预算和核算新增合同总价行,修改工资下载模版地址

余思翰 2 недель назад
Родитель
Сommit
4bb00e7ef4

+ 41
- 5
oa-ui/src/views/flowable/form/budget/adjust/budgetAdjust.vue Просмотреть файл

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2025-05-07 11:01:39
3
  * @Date: 2025-05-07 11:01:39
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-05-20 17:08:40
5
+ * @LastEditTime: 2025-05-21 09:17:51
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="main" v-loading="loading">
8
   <div class="main" v-loading="loading">
219
             <td style="text-align:right;"><b>{{ isNaN(budgetForm.totalBudget) ? 0 : budgetForm.totalBudget }}</b></td>
219
             <td style="text-align:right;"><b>{{ isNaN(budgetForm.totalBudget) ? 0 : budgetForm.totalBudget }}</b></td>
220
             <td style="text-align:right;"><b>{{ isNaN(totalBudgetAdjust) ? 0 : totalBudgetAdjust }}</b></td>
220
             <td style="text-align:right;"><b>{{ isNaN(totalBudgetAdjust) ? 0 : totalBudgetAdjust }}</b></td>
221
             <td style="text-align:right;"><b>{{ (Number(totalBudgetAdjust) - Number(budgetForm.totalBudget)).toFixed(2)
221
             <td style="text-align:right;"><b>{{ (Number(totalBudgetAdjust) - Number(budgetForm.totalBudget)).toFixed(2)
222
-            }}</b></td>
222
+                }}</b></td>
223
           </tr>
223
           </tr>
224
         </table>
224
         </table>
225
       </el-descriptions-item>
225
       </el-descriptions-item>
226
+      <el-descriptions-item label="合同总价" :span="3" v-hasRole="['leader', 'finance', 'nfinance', 'admin']">
227
+        <table border="1" style="width:100%;" v-if="contractList.length > 0">
228
+          <tr style="background-color:#f8f8f9">
229
+            <td>序号</td>
230
+            <td>合同名称</td>
231
+            <td>合同总价</td>
232
+          </tr>
233
+          <tr v-for="contract, index in contractList" :key="contract.contractId">
234
+            <td>{{ index + 1 }}</td>
235
+            <td>{{ contract.contractName }}</td>
236
+            <td>{{ contract.amount }}</td>
237
+          </tr>
238
+        </table>
239
+        <div v-else>
240
+          <div class="alert alert-warning">
241
+            暂无合同信息
242
+          </div>
243
+        </div>
244
+      </el-descriptions-item>
226
       <el-descriptions-item label="核算说明" :span="3">
245
       <el-descriptions-item label="核算说明" :span="3">
227
         <div v-if="taskName == '核算编制' && !checkForm.checkComment" class="alert alert-warning"
246
         <div v-if="taskName == '核算编制' && !checkForm.checkComment" class="alert alert-warning"
228
           style="padding: 10px; border: 1px solid #f0ad4e; background-color: #fcf8e3; color: #8a6d3b;">
247
           style="padding: 10px; border: 1px solid #f0ad4e; background-color: #fcf8e3; color: #8a6d3b;">
329
 import { getDevice } from "@/api/oa/device/device";
348
 import { getDevice } from "@/api/oa/device/device";
330
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
349
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
331
 import { getUsersManageLeader, getUserByPost, getUsersViceDeptLeaderByDept } from "@/api/system/post";
350
 import { getUsersManageLeader, getUserByPost, getUsersViceDeptLeaderByDept } from "@/api/system/post";
351
+import { listProjectContract } from "@/api/oa/contract/projectContract";
352
+import { getContract } from "@/api/oa/contract/contract";
332
 import InnerStaffCost from './components/InnerStaffCost.vue';
353
 import InnerStaffCost from './components/InnerStaffCost.vue';
333
 import OuterStaffCost from './components/OuterStaffCost.vue';
354
 import OuterStaffCost from './components/OuterStaffCost.vue';
334
 import CarCost from './components/CarCost.vue';
355
 import CarCost from './components/CarCost.vue';
372
           this.row.projectId = res.data.projectId;
393
           this.row.projectId = res.data.projectId;
373
           this.initBudgetForm();
394
           this.initBudgetForm();
374
           this.initCheckForm();
395
           this.initCheckForm();
375
-          // this.getProjectWorkList();
396
+          this.getContractInfo();
376
         });
397
         });
377
       } else {
398
       } else {
378
         this.initBudgetForm();
399
         this.initBudgetForm();
379
         this.initCheckForm();
400
         this.initCheckForm();
380
-        // this.getProjectWorkList();
401
+        this.getContractInfo();
381
       }
402
       }
382
 
403
 
383
     }
404
     }
411
         deviceList: [],
432
         deviceList: [],
412
         carList: [],
433
         carList: [],
413
         participateList: []
434
         participateList: []
414
-      }
435
+      },
436
+      contractList: [],
437
+      contract: {}
415
     }
438
     }
416
   },
439
   },
417
   async created() {
440
   async created() {
421
     }
444
     }
422
     this.initBudgetForm();
445
     this.initBudgetForm();
423
     this.initCheckForm();
446
     this.initCheckForm();
447
+    this.getContractInfo();
424
   },
448
   },
425
   methods: {
449
   methods: {
426
     initBudgetForm() {
450
     initBudgetForm() {
606
         }
630
         }
607
       })
631
       })
608
     },
632
     },
633
+    // 获取合同信息
634
+    getContractInfo() {
635
+      listProjectContract({ projectId: this.row.projectId }).then(res => {
636
+        let contractIds = res.rows;
637
+        this.contractList = [];
638
+        for (let contractId of contractIds) {
639
+          getContract(contractId.contractId).then(response => {
640
+            this.contractList.push(response.data);
641
+          })
642
+        }
643
+      })
644
+    },
609
     async initActualInfo(project) {
645
     async initActualInfo(project) {
610
       let deviceIds = project.devices.split(',');
646
       let deviceIds = project.devices.split(',');
611
       let carIds = project.cars.split(',');
647
       let carIds = project.cars.split(',');

+ 8
- 3
oa-ui/src/views/flowable/form/budget/adjust/newBudgetInfo.vue Просмотреть файл

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2025-05-07 11:01:39
3
  * @Date: 2025-05-07 11:01:39
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-05-19 17:03:41
5
+ * @LastEditTime: 2025-05-21 09:18:59
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="main" v-loading="loading">
8
   <div class="main" v-loading="loading">
392
           </tr>
392
           </tr>
393
         </table>
393
         </table>
394
       </el-descriptions-item>
394
       </el-descriptions-item>
395
-      <el-descriptions-item label="合同总价" :span="3" v-if="$store.getters.roles.includes('leader')">
396
-        <table border="1" style="width:100%;">
395
+      <el-descriptions-item label="合同总价" :span="3" v-hasRole="['leader', 'finance', 'nfinance', 'admin']">
396
+        <table border="1" style="width:100%;" v-if="contractList.length > 0">
397
           <tr style="background-color:#f8f8f9">
397
           <tr style="background-color:#f8f8f9">
398
             <td>序号</td>
398
             <td>序号</td>
399
             <td>合同名称</td>
399
             <td>合同名称</td>
405
             <td>{{ contract.amount }}</td>
405
             <td>{{ contract.amount }}</td>
406
           </tr>
406
           </tr>
407
         </table>
407
         </table>
408
+        <div v-else>
409
+          <div class="alert alert-warning">
410
+            暂无合同信息
411
+          </div>
412
+        </div>
408
       </el-descriptions-item>
413
       </el-descriptions-item>
409
       <el-descriptions-item label="分管领导审核意见" :span="3">
414
       <el-descriptions-item label="分管领导审核意见" :span="3">
410
         <div v-if="taskName == '分管审核' && !budgetForm.managerComment" class="alert alert-warning"
415
         <div v-if="taskName == '分管审核' && !budgetForm.managerComment" class="alert alert-warning"

+ 4
- 3
oa-ui/src/views/oa/wage/index.vue Просмотреть файл

72
         <template slot-scope="scope">
72
         <template slot-scope="scope">
73
           <span>{{ parseTime(scope.row.payDay, '{y}-{m}-{d}') }}</span>
73
           <span>{{ parseTime(scope.row.payDay, '{y}-{m}-{d}') }}</span>
74
         </template>
74
         </template>
75
-      </el-table-column> -->
75
+</el-table-column> -->
76
       <el-table-column label="发放月份" align="center" prop="payMonth" width="180">
76
       <el-table-column label="发放月份" align="center" prop="payMonth" width="180">
77
         <template slot-scope="scope">
77
         <template slot-scope="scope">
78
           <span>{{ parseTime(scope.row.payMonth, '{y}-{m}') }}</span>
78
           <span>{{ parseTime(scope.row.payMonth, '{y}-{m}') }}</span>
202
   name: "Wage",
202
   name: "Wage",
203
   data() {
203
   data() {
204
     return {
204
     return {
205
+      baseUrl: process.env.VUE_APP_BASE_API,
205
       // 遮罩层
206
       // 遮罩层
206
       loading: true,
207
       loading: true,
207
       // 选中数组
208
       // 选中数组
419
     },
420
     },
420
     /* 下载模板 */
421
     /* 下载模板 */
421
     importTemplate() {
422
     importTemplate() {
422
-      const path = "http://127.0.0.1:8080/profile/template/userWage.xlsx"
423
-      // const path = "http://oa.sccehui.com:6104/prod-api/profile/template/cg-template.xlsx"
423
+      // const path = "http://127.0.0.1:8080/profile/template/userWage.xlsx"
424
+      const path = `${baseUrl}${'/profile/upload/template/userWage.xlsx'}`
424
       downloadTemplate(path).then(res => {
425
       downloadTemplate(path).then(res => {
425
         const blob = new Blob([res])
426
         const blob = new Blob([res])
426
         saveAs(blob, '社保公积金模版.xlsx');
427
         saveAs(blob, '社保公积金模版.xlsx');

Загрузка…
Отмена
Сохранить