Parcourir la source

Merge branch 'master' of http://oa.sccehui.com:6101/cmc-coding/cmc-oa

lamphua il y a 9 mois
Parent
révision
5051d1c80a

+ 17
- 1
oa-ui/src/views/flowable/form/components/choosePartyA.vue Voir le fichier

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-06-18 17:38:50
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-06-18 19:00:46
5
+ * @LastEditTime: 2024-08-20 16:33:37
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -70,6 +70,12 @@ import { listPartyA, getPartyA, delPartyA, addPartyA, updatePartyA } from "@/api
70 70
 
71 71
 export default {
72 72
   name: "PartyA",
73
+  props: {
74
+    projectSource: {
75
+      type: String,
76
+      default: '2'
77
+    }
78
+  },
73 79
   data() {
74 80
     return {
75 81
       // 遮罩层
@@ -112,10 +118,20 @@ export default {
112 118
   created() {
113 119
     this.getList();
114 120
   },
121
+  watch: {
122
+    projectSource() {
123
+      this.getList();
124
+    }
125
+  },
115 126
   methods: {
116 127
     /** 查询cmc业主单位列表 */
117 128
     getList() {
118 129
       this.loading = true;
130
+      if (this.projectSource == '0') {
131
+        this.queryParams.partyAName = '中国电建集团成都勘测设计研究院有限公司'
132
+      } else {
133
+        this.queryParams.partyAName = null
134
+      }
119 135
       listPartyA(this.queryParams).then(response => {
120 136
         this.partyAList = response.rows;
121 137
         this.total = response.total;

+ 8
- 8
oa-ui/src/views/flowable/form/projectProcess/addproject.vue Voir le fichier

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-18 11:00:04
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-08-13 13:56:20
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-08-20 16:34:35
6 6
 -->
7 7
 <template>
8 8
   <div class="project-wrapper">
@@ -38,12 +38,12 @@
38 38
       </el-form-item>
39 39
       <el-form-item label="甲方单位" prop="partyAId">
40 40
         <el-select v-model="addForm.partyAId" filterable placeholder="请选择" disabled style="width: 100%;">
41
-          <el-option v-for="item in partyAList" :key="item.value" :label="item.partyAName"
42
-            :value="item.partyAId" :disabled="disabled">
41
+          <el-option v-for="item in partyAList" :key="item.value" :label="item.partyAName" :value="item.partyAId"
42
+            :disabled="disabled">
43 43
           </el-option>
44 44
         </el-select>
45 45
         <el-button type="primary" @click="partyAOpen = true" size="mini"
46
-          v-if="$route.query.taskName == '项目登记'" >选择单位</el-button>
46
+          v-if="$route.query.taskName == '项目登记'">选择单位</el-button>
47 47
       </el-form-item>
48 48
       <el-form-item label="联系人:" prop="contactPerson">
49 49
         <el-input v-model="addForm.contactPerson"></el-input>
@@ -93,9 +93,9 @@
93 93
     <el-dialog title="选择合同" :visible.sync="openContract" width="70%" append-to-body>
94 94
       <choose-contract @choose="setContract" @close="openContract = false"></choose-contract>
95 95
     </el-dialog>
96
-    
97
-    <el-dialog title="选择甲方单位" :visible.sync="partyAOpen" width="70%" append-to-body>
98
-      <choose-party-a @confirm="confirmPartyA"></choose-party-a>
96
+
97
+    <el-dialog title="选择甲方单位" :visible.sync="partyAOpen" width="60%" append-to-body>
98
+      <choose-party-a @confirm="confirmPartyA" :projectSource="addForm.projectSource"></choose-party-a>
99 99
     </el-dialog>
100 100
   </div>
101 101
 </template>

+ 12
- 11
oa-ui/src/views/flowable/form/settleForm.vue Voir le fichier

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-30 09:03:14
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-15 09:29:00
5
+ * @LastEditTime: 2024-08-20 10:44:03
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container" v-loading="loading">
@@ -673,17 +673,18 @@ export default {
673 673
         if (settleWorkResponse) {
674 674
           this.settleWorkList = settleWorkResponse.rows;
675 675
           for (let work of this.settleWorkList) {
676
-            getPrice(work.priceId).then((settleWorkResponse) => {
677
-              if (settleWorkResponse.data) {
678
-                this.setValue(work, "scale", settleWorkResponse.data.scaleGrade);
679
-                this.setValue(work, "unit", settleWorkResponse.data.unit);
680
-                if (work.groundType == "0") {
681
-                  work.price = settleWorkResponse.data.commonPrice;
682
-                } else {
683
-                  work.price = settleWorkResponse.data.complexPrice;
676
+            if(work.priceId)
677
+              getPrice(work.priceId).then((settleWorkResponse) => {
678
+                if (settleWorkResponse.data) {
679
+                  this.setValue(work, "scale", settleWorkResponse.data.scaleGrade);
680
+                  this.setValue(work, "unit", settleWorkResponse.data.unit);
681
+                  if (work.groundType == "0") {
682
+                    work.price = settleWorkResponse.data.commonPrice;
683
+                  } else {
684
+                    work.price = settleWorkResponse.data.complexPrice;
685
+                  }
684 686
                 }
685
-              }
686
-            });
687
+              });
687 688
           }
688 689
         }
689 690
         // 结算汇总里的扣除明细以及部门结算金额

+ 7
- 2
oa-ui/src/views/flowable/form/work/declareForm.vue Voir le fichier

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-08-16 09:16:36
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-08-16 16:24:17
5
+ * @LastEditTime: 2024-08-19 11:05:07
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -255,9 +255,10 @@ export default {
255 255
       })
256 256
     },
257 257
     async approveForm() {
258
-      updateDeclare(this.form);
259 258
       const params = { taskId: this.taskForm.taskId };
260 259
       if (this.taskName == '项目负责人审核') {
260
+        this.form.checkStatus = '1';
261
+        updateDeclare(this.form);
261 262
         let resData = await getUsersDeptLeader({ userId: this.form.userId });
262 263
         if (resData.data) {
263 264
           this.$set(this.taskForm.variables, "approval", resData.data.userId);
@@ -266,6 +267,8 @@ export default {
266 267
           })
267 268
         }
268 269
       } else if (this.taskName == '部门负责人审核') {
270
+        this.form.auditStatus = '1';
271
+        updateDeclare(this.form);
269 272
         this.$set(this.taskForm.variables, "approval", this.form.userId);
270 273
         getNextFlowNode(params).then(() => {
271 274
           this.handleComplete(this.taskForm);
@@ -273,6 +276,8 @@ export default {
273 276
       }
274 277
     },
275 278
     confirmForm() {
279
+      this.form.confirmStatus = '1';
280
+      updateDeclare(this.form);
276 281
       const params = { taskId: this.taskForm.taskId };
277 282
       getNextFlowNode(params).then(() => {
278 283
         this.handleComplete(this.taskForm);

+ 66
- 11
oa-ui/src/views/flowable/task/finished/index.vue Voir le fichier

@@ -17,18 +17,40 @@
17 17
     </el-form>
18 18
 
19 19
     <el-row :gutter="10" class="mb8">
20
-      <el-col :span="1.5">
20
+      <!-- <el-col :span="1.5">
21 21
         <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
22 22
           v-hasPermi="['system:deployment:remove']">删除</el-button>
23
-      </el-col>
23
+      </el-col> -->
24 24
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
25 25
     </el-row>
26 26
 
27
-    <el-table v-loading="loading" :data="finishedList" border @selection-change="handleSelectionChange">
28
-      <el-table-column type="selection" width="55" align="center" />
29
-      <el-table-column label="流程编号" align="center" prop="procInsId" :show-overflow-tooltip="true" />
30
-      <el-table-column label="任务编号" align="center" prop="taskId" :show-overflow-tooltip="true" />
27
+    <el-table v-loading="loading" :data="tableData" border @selection-change="handleSelectionChange">
28
+      <!-- <el-table-column type="selection" width="55" align="center" /> -->
29
+      <el-table-column type="expand">
30
+        <template slot-scope="props">
31
+          <el-timeline>
32
+            <el-timeline-item v-for="(process, index) in props.row.children" :key="index"
33
+              :timestamp="process.createTime" :color="'#0bbd87'">
34
+              <el-card>
35
+                <el-descriptions :column="5" border>
36
+                  <el-descriptions-item label="任务节点">{{ process.taskName }}</el-descriptions-item>
37
+                  <el-descriptions-item label="流程发起人">{{ process.startUserName }}
38
+                    <el-tag type="info" size="mini">
39
+                      {{ process.startDeptName }}
40
+                    </el-tag></el-descriptions-item>
41
+                  <el-descriptions-item label="接受时间">{{ process.createTime }}</el-descriptions-item>
42
+                  <el-descriptions-item label="审批时间">{{ process.finishTime }}</el-descriptions-item>
43
+                  <el-descriptions-item label="耗时">{{ process.duration }}</el-descriptions-item>
44
+                </el-descriptions>
45
+              </el-card>
46
+            </el-timeline-item>
47
+          </el-timeline>
48
+        </template>
49
+      </el-table-column>
50
+      <!-- <el-table-column label="流程编号" align="center" prop="procInsId" :show-overflow-tooltip="true" />
51
+      <el-table-column label="任务编号" align="center" prop="taskId" :show-overflow-tooltip="true" /> -->
31 52
       <el-table-column label="流程名称" align="center" prop="procDefName" :show-overflow-tooltip="true" />
53
+      <el-table-column label="项目编号" align="center" prop="projectName" :formatter="formatProjectName" />
32 54
       <el-table-column label="任务节点" align="center" prop="taskName" />
33 55
       <el-table-column label="流程发起人" align="center">
34 56
         <template slot-scope="scope">
@@ -47,7 +69,8 @@
47 69
           <el-button size="mini" type="text" icon="el-icon-tickets"
48 70
             @click="handleFlowRecord(scope.row)">办理进度</el-button>
49 71
           <el-button size="mini" type="text" icon="el-icon-tickets" @click="handleFlowNote(scope.row)">表单信息</el-button>
50
-          <el-button size="mini" type="text" icon="el-icon-refresh-left" @click="handleRevoke(scope.row)" :disabled="beDisabled(scope.row)">撤回
72
+          <el-button size="mini" type="text" icon="el-icon-refresh-left" @click="handleRevoke(scope.row)"
73
+            :disabled="beDisabled(scope.row)">撤回
51 74
           </el-button>
52 75
         </template>
53 76
       </el-table-column>
@@ -121,12 +144,28 @@ export default {
121 144
       formOpen: false,
122 145
       // 当前点击的行数据
123 146
       clickRow: {},
124
-      detailsOpen:false
147
+      detailsOpen: false,
125 148
     };
126 149
   },
127 150
   created() {
128 151
     this.getList();
129 152
   },
153
+  computed: {
154
+    tableData() {
155
+      const processed = [];
156
+      const map = {};
157
+      this.finishedList.forEach(item => {
158
+        if (!map[item.procInsId]) {
159
+          map[item.procInsId] = { ...item, children: [] };
160
+          processed.push(map[item.procInsId]);
161
+        } else {
162
+          map[item.procInsId].children.push(item);
163
+        }
164
+      });
165
+      console.log(processed);
166
+      return processed;
167
+    },
168
+  },
130 169
   methods: {
131 170
     /** 查询流程定义列表 */
132 171
     getList() {
@@ -223,10 +262,10 @@ export default {
223 262
         }
224 263
       })
225 264
     },
226
-    beDisabled(row){
227
-      if(row.procDefName == '项目流转' && row.taskName == '项目安排'){
265
+    beDisabled(row) {
266
+      if (row.procDefName == '项目流转' && row.taskName == '项目安排') {
228 267
         return true
229
-      }else{
268
+      } else {
230 269
         return false
231 270
       }
232 271
     },
@@ -304,7 +343,23 @@ export default {
304 343
       }).then(response => {
305 344
         this.download(response.msg);
306 345
       })
346
+    },
347
+    formatProjectName(row){
348
+      if(row.projectNumber && row.projectName)
349
+        return row.projectNumber + '-' + row.projectName
350
+      else
351
+        return '无'
307 352
     }
308 353
   }
309 354
 };
310 355
 </script>
356
+<style lang="scss" scoped>
357
+.timeline-table {
358
+  border-collapse: collapse;
359
+
360
+  td {
361
+    padding: 8px;
362
+  }
363
+
364
+}
365
+</style>

+ 32
- 32
oa-ui/src/views/flowable/task/myProcess/index.vue Voir le fichier

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-24 10:21:34
5
+ * @LastEditTime: 2024-08-20 10:58:56
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -32,14 +32,15 @@
32 32
     <el-table v-loading="loading" :data="myProcessList" border @selection-change="handleSelectionChange">
33 33
       <!-- <el-table-column type="selection" width="55" align="center" /> -->
34 34
       <el-table-column type="index" label="序号" width="55" align="center" />
35
-      <el-table-column label="流程状态" align="center" width="100">
35
+      <el-table-column label="流程状态" align="center" prop="finishTime" width="100">
36 36
         <template slot-scope="scope">
37
-          <el-tag v-if="scope.row.finishTime == null" size="mini">进行中</el-tag>
37
+          <el-tag type="warning" v-if="scope.row.finishTime == null" size="mini">进行中</el-tag>
38 38
           <el-tag type="success" v-if="scope.row.finishTime != null" size="mini">已完成</el-tag>
39 39
         </template>
40 40
       </el-table-column>
41 41
       <!-- <el-table-column label="流程编号" align="center" prop="procInsId" :show-overflow-tooltip="true" /> -->
42 42
       <el-table-column label="流程名称" align="center" prop="procDefName" :show-overflow-tooltip="true" />
43
+      <el-table-column label="项目编号" align="center" prop="projectName" :formatter="formatProjectName" />
43 44
       <!-- <el-table-column label="流程类别" align="center" prop="category" width="100px" /> -->
44 45
       <!-- <el-table-column label="流程版本" align="center" width="80px">
45 46
         <template slot-scope="scope">
@@ -76,34 +77,6 @@
76 77
     <el-dialog :title="title" :visible.sync="open" width="400px" append-to-body>
77 78
       <progress-tree :definitionList="definitionList" @confirm="handleStartProcess"
78 79
         @close="open = false"></progress-tree>
79
-      <!-- <el-form :model="queryProcessParams" ref="queryProcessForm" :inline="true" v-show="showSearch" label-width="68px">
80
-        <el-form-item label="名称" prop="name">
81
-          <el-input v-model="queryProcessParams.name" placeholder="请输入名称" clearable size="small"
82
-            @keyup.enter.native="handleQuery" />
83
-        </el-form-item>
84
-        <el-form-item>
85
-          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleProcessQuery">搜索</el-button>
86
-          <el-button icon="el-icon-refresh" size="mini" @click="resetProcessQuery">重置</el-button>
87
-        </el-form-item>
88
-      </el-form> -->
89
-      <!-- <el-table v-loading="processLoading" fit :data="definitionList" border>
90
-        <el-table-column label="流程名称" align="center" prop="name" />
91
-        <el-table-column label="流程版本" align="center">
92
-          <template slot-scope="scope">
93
-            <el-tag size="medium">v{{ scope.row.version }}</el-tag>
94
-          </template>
95
-        </el-table-column>
96
-        <el-table-column label="流程分类" align="center" prop="category" />
97
-        <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
98
-
99
-          <template slot-scope="scope">
100
-            <el-button size="mini" type="text" icon="el-icon-edit-outline"
101
-              @click="handleStartProcess(scope.row)">发起流程</el-button>
102
-          </template>
103
-        </el-table-column>
104
-      </el-table>
105
-      <pagination v-show="processTotal > 0" :total="processTotal" :page.sync="queryProcessParams.pageNum"
106
-        :limit.sync="queryProcessParams.pageSize" @pagination="listDefinition" /> -->
107 80
     </el-dialog>
108 81
     <el-dialog title="流程进度" :visible.sync="detailsOpen" append-to-body width="600px">
109 82
       <el-scrollbar style="height: 600px;">
@@ -174,7 +147,7 @@ export default {
174 147
       // 查询参数
175 148
       queryParams: {
176 149
         pageNum: 1,
177
-        pageSize: 10,
150
+        pageSize: 20,
178 151
         name: null,
179 152
         category: null,
180 153
         key: null,
@@ -236,6 +209,14 @@ export default {
236 209
       this.loading = true;
237 210
       myProcessList(this.queryParams).then(response => {
238 211
         this.myProcessList = response.data.records;
212
+        this.myProcessList.sort((a, b) => {
213
+          // 如果有结束时间,则返回1,表示a应该排在b之后  
214
+          if (a.finishTime) return 1;
215
+          // 如果b有结束时间,则返回-1,表示a应该排在b之前  
216
+          if (b.finishTime) return -1;
217
+          // 如果都没有结束时间,则返回0,表示它们的顺序不变  
218
+          return 0;
219
+        })
239 220
         this.total = response.data.total;
240 221
         this.loading = false;
241 222
       });
@@ -287,6 +268,19 @@ export default {
287 268
       this.single = selection.length !== 1
288 269
       this.multiple = !selection.length
289 270
     },
271
+    // 排序
272
+    handleSortChange({ column, prop, order }) {
273
+      if (prop === 'finishTime') {
274
+        this.myProcessList.sort((a, b) => {
275
+          // 如果有结束时间,则排在后面  
276
+          if (a.finishTime && !b.finishTime) return 1;
277
+          // 如果没有结束时间,则排在前面  
278
+          if (!a.finishTime && b.finishTime) return -1;
279
+          // 如果都有或都没有结束时间,则保持原有顺序(或根据其他规则排序)  
280
+          return 0;
281
+        })
282
+      }
283
+    },
290 284
     /** 新增按钮操作 */
291 285
     handleAdd() {
292 286
       this.open = true;
@@ -496,6 +490,12 @@ export default {
496 490
       }).then(response => {
497 491
         this.download(response.msg);
498 492
       })
493
+    },
494
+    formatProjectName(row) {
495
+      if (row.projectNumber && row.projectName)
496
+        return row.projectNumber + '-' + row.projectName
497
+      else
498
+        return '无'
499 499
     }
500 500
   }
501 501
 };

+ 7
- 0
oa-ui/src/views/flowable/task/todo/index.vue Voir le fichier

@@ -29,6 +29,7 @@
29 29
       <el-table-column type="index" label="序号" width="55" align="center" />
30 30
       <!-- <el-table-column label="任务编号" align="center" prop="taskId" :show-overflow-tooltip="true" /> -->
31 31
       <el-table-column label="流程名称" align="center" prop="procDefName" />
32
+      <el-table-column label="项目编号" align="center" prop="projectName" :formatter="formatProjectName" />
32 33
       <el-table-column label="当前节点" align="center" prop="taskName" />
33 34
       <!-- <el-table-column label="流程版本" align="center">
34 35
         <template slot-scope="scope">
@@ -252,6 +253,12 @@ export default {
252 253
         this.$modal.msgSuccess("删除成功");
253 254
       })
254 255
     },
256
+    formatProjectName(row){
257
+      if(row.projectNumber && row.projectName)
258
+        return row.projectNumber + '-' + row.projectName
259
+      else
260
+        return '无'
261
+    }
255 262
   }
256 263
 };
257 264
 </script>

+ 8
- 12
oa-ui/src/views/index.vue Voir le fichier

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-23 16:54:28
5
+ * @LastEditTime: 2024-08-20 11:01:48
6 6
 -->
7 7
 
8 8
 <template>
@@ -88,6 +88,7 @@
88 88
           <el-table v-loading="taskLoading" :data="todoList" height="400px">
89 89
             <el-table-column type="index" label="序号" width="55" align="center" />
90 90
             <el-table-column label="流程名称" align="center" prop="procDefName" />
91
+      <el-table-column label="项目编号" align="center" prop="projectName" :formatter="formatProjectName" show-overflow-tooltip />
91 92
             <el-table-column label="当前节点" align="center" prop="taskName" />
92 93
             <el-table-column label="流程发起人" align="center">
93 94
               <template slot-scope="scope">
@@ -104,18 +105,7 @@
104 105
             </el-table-column>
105 106
           </el-table>
106 107
         </div>
107
-        <!-- <div class="calendar-warpper"> -->
108
-        <!-- <Calendar></Calendar> -->
109
-        <!-- <el-calendar v-model="times"> -->
110
-        <!-- </el-calendar> -->
111
-        <!-- </div> -->
112 108
       </el-col>
113
-      <!-- <el-col :span="8" :xs="24">
114
-        <div class="header">XXXX</div>
115
-        <div class="project-content">
116
-
117
-        </div>
118
-      </el-col> -->
119 109
     </el-row>
120 110
 
121 111
     <el-dialog title="" :visible.sync="noticeOpen" width="750px" append-to-body>
@@ -386,6 +376,12 @@ export default {
386 376
       }
387 377
       return path
388 378
     },
379
+    formatProjectName(row){
380
+      if(row.projectNumber && row.projectName)
381
+        return row.projectNumber + '-' + row.projectName
382
+      else
383
+        return '无'
384
+    }
389 385
   }
390 386
 }
391 387
 </script>

+ 9
- 17
oa-ui/src/views/oa/borrow/index.vue Voir le fichier

@@ -36,22 +36,6 @@
36 36
     </el-form>
37 37
 
38 38
     <el-row :gutter="10" class="mb8">
39
-      <!-- <el-col :span="1.5">
40
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
41
-          v-hasPermi="['oa:borrow:add']">新增</el-button>
42
-      </el-col>
43
-      <el-col :span="1.5">
44
-        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
45
-          v-hasPermi="['oa:borrow:edit']">修改</el-button>
46
-      </el-col>
47
-      <el-col :span="1.5">
48
-        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
49
-          v-hasPermi="['oa:borrow:remove']">删除</el-button>
50
-      </el-col>
51
-      <el-col :span="1.5">
52
-        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
53
-          v-hasPermi="['oa:borrow:export']">导出</el-button>
54
-      </el-col> -->
55 39
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
56 40
     </el-row>
57 41
 
@@ -108,11 +92,15 @@
108 92
 import { listBorrow, getBorrow, delBorrow, addBorrow, updateBorrow } from "@/api/oa/borrow/borrow";
109 93
 import { listProject } from '@/api/oa/project/project';
110 94
 import BorrowForm from '../../flowable/form/finance/borrowForm.vue';
95
+import { mapGetters } from 'vuex'
111 96
 export default {
112 97
   name: "Borrow",
113 98
   components: {
114 99
     BorrowForm
115 100
   },
101
+  computed: {
102
+    ...mapGetters(['roles','deptId']),
103
+  },
116 104
   data() {
117 105
     return {
118 106
       // 遮罩层
@@ -158,7 +146,7 @@ export default {
158 146
         xmTime: null,
159 147
         managerTime: null,
160 148
         zjlTime: null,
161
-        lendTime: null
149
+        lendTime: null,
162 150
       },
163 151
       // 表单参数
164 152
       form: {},
@@ -179,6 +167,10 @@ export default {
179 167
     /** 查询cmc借款申请列表 */
180 168
     getList() {
181 169
       this.loading = true;
170
+      if(this.roles.some(element => element === "dept")){
171
+        this.queryParams.applyDept = this.deptId;
172
+        // this.queryParams.undertakingDept = this.deptId;
173
+      }
182 174
       listBorrow(this.queryParams).then(response => {
183 175
         this.borrowList = response.rows;
184 176
         this.total = response.total;

+ 8
- 1
oa-ui/src/views/oa/car/approval.vue Voir le fichier

@@ -65,7 +65,7 @@
65 65
           <span>{{ parseTime(scope.row.beginDate, '{y}-{m}-{d}') }}</span>
66 66
         </template>
67 67
       </el-table-column>
68
-      <el-table-column label="结束日期" align="center" prop="endDate" >
68
+      <el-table-column label="结束日期" align="center" prop="endDate">
69 69
         <template slot-scope="scope">
70 70
           <span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
71 71
         </template>
@@ -98,10 +98,14 @@
98 98
 import { listCarApproval, getCarApproval, delCarApproval, addCarApproval, updateCarApproval } from "@/api/oa/car/carApproval";
99 99
 import { listProject } from '@/api/oa/project/project';
100 100
 import carForm from '../../flowable/form/oa/carForm.vue';
101
+import { mapGetters } from 'vuex'
101 102
 
102 103
 export default {
103 104
   components: { carForm },
104 105
   name: "CarApproval",
106
+  computed: {
107
+    ...mapGetters(['roles', 'deptId']),
108
+  },
105 109
   data() {
106 110
     return {
107 111
       // 遮罩层
@@ -173,6 +177,9 @@ export default {
173 177
     /** 查询cmc用车审批列表 */
174 178
     getList() {
175 179
       this.loading = true;
180
+      if (this.roles.some(element => element === "dept")) {
181
+        this.queryParams.useDept = this.deptId;
182
+      }
176 183
       listCarApproval(this.queryParams).then(response => {
177 184
         this.carApprovalList = response.rows;
178 185
         this.total = response.total;

+ 48
- 44
oa-ui/src/views/oa/declare/index.vue Voir le fichier

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: wrh
3 3
  * @Date: 2024-08-14 14:24:11
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-08-14 15:11:29
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-08-19 11:47:08
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -22,19 +22,8 @@
22 22
           </el-option>
23 23
         </el-select>
24 24
       </el-form-item>
25
-      <el-form-item label="工作项目" prop="workItem">
26
-        <el-input
27
-          v-model="queryParams.workItem"
28
-          placeholder="请输入工作项目"
29
-          clearable
30
-          @keyup.enter.native="handleQuery"
31
-        />
32
-      </el-form-item>
33 25
       <el-form-item label="填报时间" prop="submitTime">
34
-        <el-date-picker clearable
35
-          v-model="queryParams.submitTime"
36
-          type="date"
37
-          value-format="yyyy-MM-dd"
26
+        <el-date-picker clearable v-model="queryParams.submitTime" type="date" value-format="yyyy-MM-dd"
38 27
           placeholder="请选择填报时间">
39 28
         </el-date-picker>
40 29
       </el-form-item>
@@ -78,14 +67,8 @@
78 67
         >删除</el-button>
79 68
       </el-col> -->
80 69
       <el-col :span="1.5">
81
-        <el-button
82
-          type="warning"
83
-          plain
84
-          icon="el-icon-download"
85
-          size="mini"
86
-          @click="handleExport"
87
-          v-hasPermi="['oa:declare:export']"
88
-        >导出</el-button>
70
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
71
+          v-hasPermi="['oa:declare:export']">导出</el-button>
89 72
       </el-col>
90 73
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
91 74
     </el-row>
@@ -102,24 +85,29 @@
102 85
       <el-table-column label="工天" align="center" prop="workLoad" />
103 86
       <el-table-column label="工天单价" align="center" prop="price" />
104 87
       <el-table-column label="系数" align="center" prop="coefficient" />
88
+      <el-table-column label="预估绩效" align="center">
89
+        <template slot-scope="scope">
90
+          {{ predictMoney(scope.row) }}
91
+        </template>
92
+      </el-table-column>
105 93
       <el-table-column label="一审状态" align="center" prop="checkStatus">
106 94
         <template slot-scope="scope">
107
-          <span>{{ scope.row.checkStatus == '0' ? '待审核' : '已审核' }}</span>
95
+          <el-tag :type="formartType(scope.row.checkStatus)">{{ formatFn(scope.row, 'checkStatus') }}</el-tag>
108 96
         </template>
109 97
       </el-table-column>
110 98
       <el-table-column label="二审状态" align="center" prop="auditStatus">
111 99
         <template slot-scope="scope">
112
-          <span>{{ scope.row.auditStatus == '0' ? '待审核' : '已审核' }}</span>
100
+          <el-tag :type="formartType(scope.row.auditStatus)">{{ formatFn(scope.row, 'auditStatus') }}</el-tag>
113 101
         </template>
114 102
       </el-table-column>
115
-      <el-table-column label="填报时间" align="center" prop="submitTime" width="180">
103
+      <el-table-column label="确认状态" align="center" prop="confirmStatus">
116 104
         <template slot-scope="scope">
117
-          <span>{{ parseTime(scope.row.submitTime, '{y}-{m}-{d}') }}</span>
105
+          <el-tag :type="formartType(scope.row.confirmStatus)">{{ formatFn(scope.row, 'confirmStatus') }}</el-tag>
118 106
         </template>
119 107
       </el-table-column>
120
-      <el-table-column label="确认状态" align="center" prop="confirmStatus">
108
+      <el-table-column label="填报时间" align="center" prop="submitTime" width="180">
121 109
         <template slot-scope="scope">
122
-          <span>{{ scope.row.confirmStatus == '0' ? '待确认' : '已确认' }}</span>
110
+          <span>{{ parseTime(scope.row.submitTime, '{y}-{m}-{d}') }}</span>
123 111
         </template>
124 112
       </el-table-column>
125 113
       <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -141,14 +129,9 @@
141 129
         </template>
142 130
       </el-table-column> -->
143 131
     </el-table>
144
-    
145
-    <pagination
146
-      v-show="total>0"
147
-      :total="total"
148
-      :page.sync="queryParams.pageNum"
149
-      :limit.sync="queryParams.pageSize"
150
-      @pagination="getList"
151
-    />
132
+
133
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
134
+      @pagination="getList" />
152 135
 
153 136
     <!-- 添加或修改工作填报对话框 -->
154 137
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
@@ -163,7 +146,7 @@
163 146
           <el-input v-model="form.workItem" placeholder="请输入工作项目" />
164 147
         </el-form-item>
165 148
         <el-form-item label="工作内容">
166
-          <editor v-model="form.workContent" :min-height="192"/>
149
+          <editor v-model="form.workContent" :min-height="192" />
167 150
         </el-form-item>
168 151
         <el-form-item label="工天" prop="workLoad">
169 152
           <el-input v-model="form.workLoad" placeholder="请输入工天" />
@@ -175,10 +158,7 @@
175 158
           <el-input v-model="form.coefficient" placeholder="请输入系数" />
176 159
         </el-form-item>
177 160
         <el-form-item label="填报时间" prop="submitTime">
178
-          <el-date-picker clearable
179
-            v-model="form.submitTime"
180
-            type="date"
181
-            value-format="yyyy-MM-dd"
161
+          <el-date-picker clearable v-model="form.submitTime" type="date" value-format="yyyy-MM-dd"
182 162
             placeholder="请选择填报时间">
183 163
           </el-date-picker>
184 164
         </el-form-item>
@@ -301,7 +281,7 @@ export default {
301 281
     // 多选框选中数据
302 282
     handleSelectionChange(selection) {
303 283
       this.ids = selection.map(item => item.formId)
304
-      this.single = selection.length!==1
284
+      this.single = selection.length !== 1
305 285
       this.multiple = !selection.length
306 286
     },
307 287
     /** 新增按钮操作 */
@@ -343,18 +323,42 @@ export default {
343 323
     /** 删除按钮操作 */
344 324
     handleDelete(row) {
345 325
       const formIds = row.formId || this.ids;
346
-      this.$modal.confirm('是否确认删除工作填报编号为"' + formIds + '"的数据项?').then(function() {
326
+      this.$modal.confirm('是否确认删除工作填报编号为"' + formIds + '"的数据项?').then(function () {
347 327
         return delDeclare(formIds);
348 328
       }).then(() => {
349 329
         this.getList();
350 330
         this.$modal.msgSuccess("删除成功");
351
-      }).catch(() => {});
331
+      }).catch(() => { });
352 332
     },
353 333
     /** 导出按钮操作 */
354 334
     handleExport() {
355 335
       this.download('oa/declare/export', {
356 336
         ...this.queryParams
357 337
       }, `declare_${new Date().getTime()}.xlsx`)
338
+    },
339
+    formatFn(row, type) {
340
+      if (type == 'confirmStatus') {
341
+        if (row[type] && row[type] == '1') {
342
+          return '已确认'
343
+        } else {
344
+          return '待确认'
345
+        }
346
+      }
347
+      if (row[type] && row[type] == '1') {
348
+        return '已审核'
349
+      } else {
350
+        return '待审核'
351
+      }
352
+    },
353
+    formartType(val) {
354
+      if (val && val == '1')
355
+        return 'success'
356
+      else
357
+        return 'warning'
358
+    },
359
+    predictMoney(row){
360
+      let result = parseFloat(row.price * row.workLoad * row.coefficient)
361
+      return result.toFixed(2)
358 362
     }
359 363
   }
360 364
 };

+ 8
- 1
oa-ui/src/views/oa/project/info.vue Voir le fichier

@@ -141,9 +141,16 @@
141 141
                 </el-table>
142 142
               </div>
143 143
             </el-descriptions-item>
144
+            <el-descriptions-item :span="3">
145
+              <template slot="label">
146
+                <svg-icon slot="prefix" icon-class="business" />
147
+                资料提交要求
148
+              </template>
149
+              {{ project.projectRequest }}
150
+            </el-descriptions-item>
144 151
             <el-descriptions-item>
145 152
               <template slot="label">
146
-                <svg-icon slot="prefix" icon-class="edit" />
153
+                <svg-icon slot="prefix" icon-class="excel" />
147 154
                 项目备注
148 155
               </template>
149 156
               {{ project.remark }}

Loading…
Annuler
Enregistrer