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

修改项目结算,新增实际结算总金额

修改人员信息,参与项目
余思翰 7 месяцев назад
Родитель
Сommit
0bf1081369

+ 1
- 1
oa-ui/src/components/Pagination/index.vue Просмотреть файл

54
     },
54
     },
55
     autoScroll: {
55
     autoScroll: {
56
       type: Boolean,
56
       type: Boolean,
57
-      default: true
57
+      default: false
58
     },
58
     },
59
     hidden: {
59
     hidden: {
60
       type: Boolean,
60
       type: Boolean,

+ 0
- 1
oa-ui/src/views/flowable/form/budget/addBudget.vue Просмотреть файл

771
         addBudgetStaff(user);
771
         addBudgetStaff(user);
772
       }
772
       }
773
       for (let car of form.chooseCar) {
773
       for (let car of form.chooseCar) {
774
-        console.log(form.budgetId);
775
         car.budgetId = form.budgetId;
774
         car.budgetId = form.budgetId;
776
         addBudgetCar(car);
775
         addBudgetCar(car);
777
       }
776
       }

+ 0
- 1
oa-ui/src/views/flowable/form/procure/procureForm.vue Просмотреть файл

176
     },
176
     },
177
     // 保存表单
177
     // 保存表单
178
     async saves() {
178
     async saves() {
179
-      console.log(this.formTotal);
180
       if (this.formTotal != 0) {
179
       if (this.formTotal != 0) {
181
         if (this.taskName == '编制计划') {
180
         if (this.taskName == '编制计划') {
182
           this.form.planUserId = this.$refs.zhRef.localSignatureUserId;
181
           this.form.planUserId = this.$refs.zhRef.localSignatureUserId;

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

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-10-10 10:03:14
3
  * @Date: 2024-10-10 10:03:14
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-10-24 16:45:48
5
+ * @LastEditTime: 2024-10-25 11:35:32
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
9
     <el-form-item label="主合同信息" label-width="120px">
9
     <el-form-item label="主合同信息" label-width="120px">
10
       <div v-if="hasContract" v-loading="contractLoading">
10
       <div v-if="hasContract" v-loading="contractLoading">
11
-        <el-descriptions border style="margin-top: 10px" :column="2" v-for="item in contractObjList">
11
+        <el-descriptions border style="margin-top: 10px" :column="2" v-for="item,index in contractObjList" :key="index">
12
           <el-descriptions-item label="合同名称">
12
           <el-descriptions-item label="合同名称">
13
             {{ item.contractName }}
13
             {{ item.contractName }}
14
           </el-descriptions-item>
14
           </el-descriptions-item>
49
     </el-form-item>
49
     </el-form-item>
50
     <el-form-item label="分包合同信息" label-width="120px">
50
     <el-form-item label="分包合同信息" label-width="120px">
51
       <div v-if="hasSubContract" v-loading="subContractLoading">
51
       <div v-if="hasSubContract" v-loading="subContractLoading">
52
-        <el-descriptions border style="margin-top: 10px" :column="2" v-for="item in subContractObjList">
52
+        <el-descriptions border style="margin-top: 10px" :column="2" v-for="item,index in subContractObjList" :key="index">
53
           <el-descriptions-item label="分包合同名称">
53
           <el-descriptions-item label="分包合同名称">
54
             {{ item.subContractName }}
54
             {{ item.subContractName }}
55
           </el-descriptions-item>
55
           </el-descriptions-item>
112
       subContractObjList: [],
112
       subContractObjList: [],
113
       hasContract: true,
113
       hasContract: true,
114
       hasSubContract: true,
114
       hasSubContract: true,
115
-      contractLoading: true,
116
-      subContractLoading: true,
115
+      contractLoading: false,
116
+      subContractLoading: false,
117
     }
117
     }
118
   },
118
   },
119
   methods: {
119
   methods: {
120
     init() {
120
     init() {
121
       const projectId = this.projectId;
121
       const projectId = this.projectId;
122
-      console.log(projectId);
123
       this.contractLoading = true;
122
       this.contractLoading = true;
124
       this.subContractLoading = true;
123
       this.subContractLoading = true;
125
       Promise.all([listProjectContract({ projectId }), listProjectSubcontract({ projectId })]).then(async response => {
124
       Promise.all([listProjectContract({ projectId }), listProjectSubcontract({ projectId })]).then(async response => {

+ 13
- 11
oa-ui/src/views/flowable/form/settleForm.vue Просмотреть файл

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-04-30 09:03:14
3
  * @Date: 2024-04-30 09:03:14
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-10-22 15:20:01
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-10-25 14:04:14
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container" v-loading="loading">
8
   <div class="app-container" v-loading="loading">
42
               </el-descriptions-item>
42
               </el-descriptions-item>
43
               <el-descriptions-item label="项目级别" label-class-name="my-label">
43
               <el-descriptions-item label="项目级别" label-class-name="my-label">
44
                 {{
44
                 {{
45
-    chooseProject.projectLevel == "0" ? " 一般项目" : "重大项目"
46
-  }}
45
+                  chooseProject.projectLevel == "0" ? " 一般项目" : "重大项目"
46
+                }}
47
               </el-descriptions-item>
47
               </el-descriptions-item>
48
               <el-descriptions-item label="承担部门" label-class-name="my-label">
48
               <el-descriptions-item label="承担部门" label-class-name="my-label">
49
                 {{ chooseProject.undertakingDeptName }}
49
                 {{ chooseProject.undertakingDeptName }}
260
                 <td style="width: 280px">备注</td>
260
                 <td style="width: 280px">备注</td>
261
                 <td style="width: 100px">操作</td>
261
                 <td style="width: 100px">操作</td>
262
               </tr>
262
               </tr>
263
-              <tr v-for="(  work, index  ) in   settleSumList  " :key="index">
263
+              <tr v-for="(  work, index  ) in settleSumList  " :key="index">
264
                 <td>
264
                 <td>
265
                   {{ index + 1 }}
265
                   {{ index + 1 }}
266
                 </td>
266
                 </td>
296
                 <td style="width: 280px">备注</td>
296
                 <td style="width: 280px">备注</td>
297
                 <td style="width: 100px">操作</td>
297
                 <td style="width: 100px">操作</td>
298
               </tr>
298
               </tr>
299
-              <tr v-for="(  dept, index  ) in   deptSettleList  " :key="index">
299
+              <tr v-for="(  dept, index  ) in deptSettleList  " :key="index" v-if="dept.content != '实际结算总金额'">
300
                 <td :rowspan="deptSettleList.length" v-if="index == 0">
300
                 <td :rowspan="deptSettleList.length" v-if="index == 0">
301
                   {{ Number(actualSumSettle).toFixed(2) }}
301
                   {{ Number(actualSumSettle).toFixed(2) }}
302
                 </td>
302
                 </td>
308
                   </el-input> -->
308
                   </el-input> -->
309
                   <el-select v-model="dept.content" placeholder="请选择" filterable clearable style="width:100%;"
309
                   <el-select v-model="dept.content" placeholder="请选择" filterable clearable style="width:100%;"
310
                     :disabled="isModify">
310
                     :disabled="isModify">
311
-                    <el-option v-for="item  in $store.state.user.deptList" :key="item.deptId" :label="item.deptName"
311
+                    <el-option v-for="item in $store.state.user.deptList" :key="item.deptId" :label="item.deptName"
312
                       :value="item.deptName">
312
                       :value="item.deptName">
313
                     </el-option>
313
                     </el-option>
314
                   </el-select>
314
                   </el-select>
405
               <el-col :span="6" :xs="24" :offset="12">
405
               <el-col :span="6" :xs="24" :offset="12">
406
                 <el-form-item label="签名:" label-width="120px">
406
                 <el-form-item label="签名:" label-width="120px">
407
                   <span class="auditor"> {{ form.managerUserName ? form.managerUserName :
407
                   <span class="auditor"> {{ form.managerUserName ? form.managerUserName :
408
-    getUserName(form.managerUserId) }}
408
+                    getUserName(form.managerUserId) }}
409
                   </span>
409
                   </span>
410
                 </el-form-item>
410
                 </el-form-item>
411
               </el-col>
411
               </el-col>
661
         ] = await Promise.all([
661
         ] = await Promise.all([
662
           getProject(res.rows[0].projectId),
662
           getProject(res.rows[0].projectId),
663
           listBudget({ projectId: res.rows[0].projectId }),
663
           listBudget({ projectId: res.rows[0].projectId }),
664
-          listSettleWork({ settleId: settleId, pageSize: 30 }),
665
-          listSettleSummary({ settleId, pageSize: 20 })
664
+          listSettleWork({ settleId: settleId, pageSize: 50 }),
665
+          listSettleSummary({ settleId, pageSize: 50 })
666
         ]);
666
         ]);
667
 
667
 
668
         if (projectResponse) {
668
         if (projectResponse) {
713
           }
713
           }
714
           this.settleSumList = settleSummaryResponse.rows.filter((item) => item.tableNumber == "0");
714
           this.settleSumList = settleSummaryResponse.rows.filter((item) => item.tableNumber == "0");
715
           this.deptSettleList = settleSummaryResponse.rows.filter(
715
           this.deptSettleList = settleSummaryResponse.rows.filter(
716
-            (item) => item.tableNumber == "1"
716
+            (item) => item.tableNumber == "1" && item.content != '实际结算总金额'
717
           );
717
           );
718
           this.calculateActualSumSettle();
718
           this.calculateActualSumSettle();
719
         }
719
         }
1054
         item.settleId = settleId;
1054
         item.settleId = settleId;
1055
         addSettleSummary(item);
1055
         addSettleSummary(item);
1056
       }
1056
       }
1057
+      let obj = { settleId: settleId, content: '实际结算总金额', amount: (this.actualSumSettle).toFixed(2), tableNumber: 1 }
1058
+      addSettleSummary(obj)
1057
     },
1059
     },
1058
 
1060
 
1059
     // 更新数据
1061
     // 更新数据

+ 0
- 1
oa-ui/src/views/flowable/form/technicalPlan.vue Просмотреть файл

590
     },
590
     },
591
     async confirmExamine() {
591
     async confirmExamine() {
592
       let res = this.common == '0' ? false : true;
592
       let res = this.common == '0' ? false : true;
593
-      console.log(res);
594
       this.$set(this.taskForm.variables, "common", res);
593
       this.$set(this.taskForm.variables, "common", res);
595
       if (this.taskName == '技术审核') {
594
       if (this.taskName == '技术审核') {
596
         let res = await getUsersDeptLeaderByDept({ deptId: 109 })
595
         let res = await getUsersDeptLeaderByDept({ deptId: 109 })

+ 1
- 2
oa-ui/src/views/flowable/task/myProcess/index.vue Просмотреть файл

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-01-03 09:23:11
3
  * @Date: 2024-01-03 09:23:11
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-30 15:19:58
5
+ * @LastEditTime: 2024-10-25 14:05:06
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
291
     },
291
     },
292
     /**  发起流程申请 */
292
     /**  发起流程申请 */
293
     async handleStartProcess(row) {
293
     async handleStartProcess(row) {
294
-      console.log(row);
295
       if (row.name == "绩效审批") {
294
       if (row.name == "绩效审批") {
296
         let deptId = this.$store.getters.deptId;
295
         let deptId = this.$store.getters.deptId;
297
         let reportTime = parseTime(new Date(), '{y}-{m}')
296
         let reportTime = parseTime(new Date(), '{y}-{m}')

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

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-22 14:50:46
3
  * @Date: 2024-03-22 14:50:46
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-08-08 10:42:03
5
+ * @LastEditTime: 2024-10-25 15:07:27
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="bg" v-loading="loading">
8
   <div class="bg" v-loading="loading">
270
 <style lang="scss" scoped>
270
 <style lang="scss" scoped>
271
 .bg {
271
 .bg {
272
   background-color: #F0F2F5;
272
   background-color: #F0F2F5;
273
-  height: 1000px;
274
 }
273
 }
275
 
274
 
276
 .header {
275
 .header {
295
 
294
 
296
 .userInfo {
295
 .userInfo {
297
   background-color: #fff;
296
   background-color: #fff;
298
-  // height: 800px;
297
+  height: 900px;
299
   margin-right: 40px;
298
   margin-right: 40px;
300
   padding: 5px;
299
   padding: 5px;
301
 
300
 
355
 
354
 
356
 .stateInfo {
355
 .stateInfo {
357
   background-color: #fff;
356
   background-color: #fff;
358
-  height: 800px;
357
+  height: 900px;
358
+  overflow-y: scroll;
359
   padding: 10px 30px 0;
359
   padding: 10px 30px 0;
360
 }
360
 }
361
 </style>
361
 </style>

+ 52
- 38
oa-ui/src/views/oa/staff/participate.vue Просмотреть файл

1
 <!--
1
 <!--
2
  * @Author: wrh
2
  * @Author: wrh
3
  * @Date: 2024-03-25 17:38:39
3
  * @Date: 2024-03-25 17:38:39
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-07-25 16:02:48
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-10-25 15:25:30
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
9
-    <!-- <el-table :data="tableData" style="width: 100%" height="660px" :row-style="{height: '60px'}"> -->
10
-    <!-- <el-table-column type="expand">
11
-        <template slot-scope="props">
12
-          <div style="background-color: #F0F2F5;">
13
-            <el-descriptions direction="vertical" :column="3" border>
14
-              <el-descriptions-item label="工作内容">XXXXXX</el-descriptions-item>
15
-              <el-descriptions-item label="工作量">XXXXXX</el-descriptions-item>
16
-              <el-descriptions-item label="单位" :span="2">km²</el-descriptions-item>
17
-            </el-descriptions>
18
-          </div>
19
-        </template>
20
-      </el-table-column> -->
21
-    <!-- <el-table-column label="项目编号" width="100px" prop="projectNumber">
22
-      </el-table-column>
23
-      <el-table-column label="项目名称" prop="projectName">
24
-      </el-table-column>
25
-      <el-table-column label="项目负责人" width="100px" prop="projectLeaderUser.nickName">
26
-      </el-table-column>
27
-      <el-table-column label="承担部门" prop="undertakingDeptName">
28
-      </el-table-column>
29
-    </el-table> -->
30
-    <el-collapse v-model="activeNames" @change="handleChange">
31
-      <el-collapse-item :name="item.projectNumber" v-for="item in tableData" :key="item.projectNumber">
9
+    <el-collapse v-model="activeNames" @change="handleChange" accordion>
10
+      <el-collapse-item :name="item.projectId" v-for="item in tableData" :key="item.projectNumber">
32
         <template slot="title">
11
         <template slot="title">
33
-          <div>
34
-            <svg-icon icon-class="ArrowRight" class="info-icon"></svg-icon>
35
-            {{ item.projectNumber + ' ' + ' ' + item.projectName + ' ' + ' ' + item.projectLeaderUser.nickName }}
12
+          <div :class="{ active: activeNames == item.projectId }">
13
+            <svg-icon :icon-class="activeNames == item.projectId ? 'ArrowDown' : 'ArrowRight'"
14
+              class="info-icon"></svg-icon>
15
+            {{ item.projectNumber + ' ' + ' ' + item.projectName + ' ' + ' ' + getUserName(item.projectLeader) }}
36
           </div>
16
           </div>
37
         </template>
17
         </template>
38
-        <div style="background-color: #F0F2F5;">
39
-          <el-descriptions direction="vertical" :column="3" border>
40
-            <el-descriptions-item label="工作内容">暂无信息,敬请期待</el-descriptions-item>
41
-            <el-descriptions-item label="工作量">暂无信息,敬请期待</el-descriptions-item>
42
-            <el-descriptions-item label="单位" :span="2">暂无信息,敬请期待</el-descriptions-item>
43
-          </el-descriptions>
18
+        <div class="tables">
19
+          <el-table :data="workData" style="width: 100%" align="center" v-loading="tableLoading" height="300px">
20
+            <el-table-column type="index" label="序号" />
21
+            <el-table-column prop="workType" label="工作类型" />
22
+            <el-table-column prop="workItem" label="工作项目" />
23
+            <el-table-column prop="workContent" label="工作内容" />
24
+            <el-table-column prop="workLoad" label="工作量" />
25
+          </el-table>
26
+          <div class="mt10" style="text-align:right;">
27
+            <el-pagination small layout="total,prev, pager, next" :total="workTotal" :current-page="pageNum"
28
+              @current-change="changePageNum"></el-pagination>
29
+          </div>
44
         </div>
30
         </div>
45
       </el-collapse-item>
31
       </el-collapse-item>
46
     </el-collapse>
32
     </el-collapse>
47
     <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
33
     <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
48
-      @pagination="getListByPaticipates" />
34
+      :autoScroll="false" @pagination="getListByPaticipates" />
49
   </div>
35
   </div>
50
 </template>
36
 </template>
51
 
37
 
52
 <script>
38
 <script>
53
-
54
 import { listProject } from "@/api/oa/project/project";
39
 import { listProject } from "@/api/oa/project/project";
40
+import { listDeclare } from "@/api/oa/declare/declare"
41
+import { getDeclare } from "../../../api/oa/declare/declare";
55
 export default {
42
 export default {
56
   data() {
43
   data() {
57
     return {
44
     return {
64
       // 总条数
51
       // 总条数
65
       total: 0,
52
       total: 0,
66
       tableData: [],
53
       tableData: [],
67
-      activeNames: ['1'],
54
+      activeNames: '',
55
+      workData: [],
56
+      workTotal: 0,
57
+      tableLoading: false,
58
+      pageNum: 1,
68
     }
59
     }
69
   },
60
   },
70
   created() {
61
   created() {
72
   },
63
   },
73
   methods: {
64
   methods: {
74
     handleChange(val) {
65
     handleChange(val) {
75
-
66
+      if (val) {
67
+        this.getDeclareList();
68
+      }
69
+    },
70
+    getDeclareList() {
71
+      this.tableLoading = true
72
+      listDeclare({ pageNum: this.pageNum, projectId: this.activeNames, userId: this.$route.query.userId }).then(res => {
73
+        this.workData = res.rows;
74
+        this.workTotal = res.total;
75
+        this.tableLoading = false
76
+      })
77
+    },
78
+    changePageNum(val) {
79
+      this.pageNum = val;
80
+      this.getDeclareList();
76
     },
81
     },
77
     getListByPaticipates() {
82
     getListByPaticipates() {
78
       this.queryParams.participates = this.$route.query.userId;
83
       this.queryParams.participates = this.$route.query.userId;
89
 .info-icon {
94
 .info-icon {
90
   font-size: 20px;
95
   font-size: 20px;
91
 }
96
 }
97
+
98
+.active {
99
+  color: var(--current-color);
100
+}
101
+
102
+.tables {
103
+  border: 1px solid #e2e1e1;
104
+  padding: 10px;
105
+}
92
 </style>
106
 </style>

+ 7
- 4
oa-ui/src/views/oa/staff/projectInfo.vue Просмотреть файл

1
 <!--
1
 <!--
2
  * @Author: wrh
2
  * @Author: wrh
3
  * @Date: 2024-03-25 17:38:39
3
  * @Date: 2024-03-25 17:38:39
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-07-25 15:57:16
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-10-25 14:30:36
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
17
             </el-descriptions>
17
             </el-descriptions>
18
           </div>
18
           </div>
19
         </template>
19
         </template>
20
-      </el-table-column> -->
20
+</el-table-column> -->
21
       <el-table-column label="项目编号" width="100px" prop="projectNumber">
21
       <el-table-column label="项目编号" width="100px" prop="projectNumber">
22
       </el-table-column>
22
       </el-table-column>
23
       <el-table-column label="项目名称" prop="projectName">
23
       <el-table-column label="项目名称" prop="projectName">
24
       </el-table-column>
24
       </el-table-column>
25
-      <el-table-column label="项目负责人" width="100px" prop="projectLeaderUser.nickName">
25
+      <el-table-column label="项目负责人" width="100px" prop="projectLeader">
26
+        <template slot-scope="scope">
27
+          {{ getUserName(scope.row.projectLeader) }}
28
+        </template>
26
       </el-table-column>
29
       </el-table-column>
27
       <el-table-column label="承担部门" prop="undertakingDeptName">
30
       <el-table-column label="承担部门" prop="undertakingDeptName">
28
       </el-table-column>
31
       </el-table-column>

+ 1
- 2
oa-ui/src/views/statistics/index.vue Просмотреть файл

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-10-11 09:23:15
3
  * @Date: 2024-10-11 09:23:15
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-10-24 16:01:43
5
+ * @LastEditTime: 2024-10-25 09:50:41
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container bg">
8
   <div class="app-container bg">
85
     async getBorrowInfo() {
85
     async getBorrowInfo() {
86
       let res = await getBorrowStatistic();
86
       let res = await getBorrowStatistic();
87
       this.borrowInfo = res.data;
87
       this.borrowInfo = res.data;
88
-      console.log(res.data);
89
     },
88
     },
90
     async getSettleInfo(){
89
     async getSettleInfo(){
91
       let res = await getSettleStatistic();
90
       let res = await getSettleStatistic();

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