|
@@ -1,8 +1,13 @@
|
1
|
1
|
<template>
|
2
|
2
|
<div class="app-container">
|
3
|
3
|
<el-row :gutter="20">
|
|
4
|
+ <div class="mb20" v-if="showAlter">
|
|
5
|
+ <el-alert title="任务被退回,请修改后重新提交" type="error" :closable="false">
|
|
6
|
+ <return-comment :taskForm="taskForm" @isReturn="isReturn"></return-comment>
|
|
7
|
+ </el-alert>
|
|
8
|
+ </div>
|
4
|
9
|
<h2 style="text-align: center;">绩效审批表</h2>
|
5
|
|
- <el-form ref="form" :model="form" :rules="rules" :disabled="taskName == ''">
|
|
10
|
+ <el-form ref="form" :model="form" :rules="rules">
|
6
|
11
|
<el-row :gutter="20">
|
7
|
12
|
<el-col :span="7" :xs="24">
|
8
|
13
|
<el-form-item label="上报人:" prop="reporter" label-width="100px">
|
|
@@ -20,7 +25,7 @@
|
20
|
25
|
</el-form-item>
|
21
|
26
|
</el-col>
|
22
|
27
|
</el-row>
|
23
|
|
- <div>
|
|
28
|
+ <div v-if="taskName == '绩效上报'">
|
24
|
29
|
<el-button type="primary" size="small" icon="el-icon-upload" @click="upload.open = true">上传绩效表</el-button>
|
25
|
30
|
<div
|
26
|
31
|
style="background-color: #f0f9eb; border: 1px solid #c2e7b0; padding: 10px; border-radius: 5px;margin-top: 10px;">
|
|
@@ -123,20 +128,57 @@
|
123
|
128
|
</el-table>
|
124
|
129
|
<pagination v-show="outerTotal > 0" :total="outerTotal" :page.sync="outerParams.pageNum"
|
125
|
130
|
:limit.sync="outerParams.pageSize" @pagination="getOuterTableData" />
|
126
|
|
- <div class="table-title">绩效统计表</div>
|
127
|
|
- <el-table :data="performanceTableData" style="width: 100%">
|
128
|
|
- <el-table-column prop="nickName" label="姓名" />
|
|
131
|
+ <div class="table-title">
|
|
132
|
+ 绩效统计表
|
|
133
|
+ <el-button type="success" size="small" icon="el-icon-printer" @click="printPerformanceTable"
|
|
134
|
+ style="margin-left: 20px;">
|
|
135
|
+ 打印
|
|
136
|
+ </el-button>
|
|
137
|
+ </div>
|
|
138
|
+ <el-table :data="groupedPerformanceData" style="width: 100%" class="mb20" row-class-name="table-row-class">
|
|
139
|
+ <el-table-column type="index" label="序号" width="50">
|
|
140
|
+ <template slot-scope="scope">
|
|
141
|
+ <span v-if="!scope.row.isSummary">{{ scope.$index + 1 }}</span>
|
|
142
|
+ </template>
|
|
143
|
+ </el-table-column>
|
|
144
|
+ <el-table-column prop="nickName" label="姓名">
|
|
145
|
+ <template slot-scope="scope">
|
|
146
|
+ <span v-if="!scope.row.isSummary">{{ scope.row.nickName }}</span>
|
|
147
|
+ <span v-else class="summary-text">{{ scope.row['dept.deptName'] }}部门总计</span>
|
|
148
|
+ </template>
|
|
149
|
+ </el-table-column>
|
129
|
150
|
<el-table-column prop="dept.deptName" label="部门" />
|
130
|
|
- <el-table-column prop="producePerformance" label="生产绩效" />
|
131
|
|
- <el-table-column prop="managePerformance" label="管理绩效" />
|
|
151
|
+ <el-table-column prop="producePerformance" label="生产绩效" sortable>
|
|
152
|
+ <template slot-scope="scope">
|
|
153
|
+ <span :class="{ 'summary-text': scope.row.isSummary }">
|
|
154
|
+ {{ scope.row.isSummary ? Number(scope.row.producePerformance).toFixed(2) : scope.row.producePerformance }}
|
|
155
|
+ </span>
|
|
156
|
+ </template>
|
|
157
|
+ </el-table-column>
|
|
158
|
+ <el-table-column prop="managePerformance" label="管理绩效" sortable>
|
|
159
|
+ <template slot-scope="scope">
|
|
160
|
+ <span :class="{ 'summary-text': scope.row.isSummary }">
|
|
161
|
+ {{ scope.row.isSummary ? Number(scope.row.managePerformance).toFixed(2) : scope.row.managePerformance }}
|
|
162
|
+ </span>
|
|
163
|
+ </template>
|
|
164
|
+ </el-table-column>
|
|
165
|
+ <el-table-column label="总绩效" width="100" sortable>
|
|
166
|
+ <template slot-scope="scope">
|
|
167
|
+ <span :class="{ 'summary-text': scope.row.isSummary }">
|
|
168
|
+ {{ (Number(scope.row.producePerformance) + Number(scope.row.managePerformance)).toFixed(2) }}
|
|
169
|
+ </span>
|
|
170
|
+ </template>
|
|
171
|
+ </el-table-column>
|
132
|
172
|
<el-table-column prop="performanceMonth" label="统计月份">
|
133
|
173
|
<template slot-scope="scope">
|
134
|
|
- {{ parseTime(scope.row.performanceMonth, '{y}-{m}') }}
|
|
174
|
+ <span v-if="!scope.row.isSummary">{{ parseTime(scope.row.performanceMonth, '{y}-{m}') }}</span>
|
135
|
175
|
</template>
|
136
|
176
|
</el-table-column>
|
137
|
177
|
</el-table>
|
138
|
|
- <el-form-item label="附件上传:" prop="document" label-width="100px">
|
139
|
|
- <FileUpload v-if="!form.document" ref="orz" :limit="1" :isShowTip="false"
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+ <el-form-item label="附件上传:" prop="document" label-width="130px">
|
|
181
|
+ <FileUpload v-if="taskName == '绩效上报' && !form.document" ref="orz" :limit="1" :isShowTip="false"
|
140
|
182
|
:filePathName="'绩效审批/' + parseTime(new Date(), '{y}-{m}-{d}-{h}-{i}-{s}')"
|
141
|
183
|
:fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf', 'rar', 'zip']" @input="setDocument">
|
142
|
184
|
</FileUpload>
|
|
@@ -150,15 +192,39 @@
|
150
|
192
|
</el-link>
|
151
|
193
|
<span class="el-icon-delete del-file" @click="deleteDoc" v-if="taskName == '绩效上报'">删除文件</span>
|
152
|
194
|
</div>
|
|
195
|
+ <div v-else>
|
|
196
|
+ 暂无附件
|
|
197
|
+ </div>
|
153
|
198
|
</el-form-item>
|
154
|
|
- <el-form-item label="绩效说明:" prop="remark" label-width="100px">
|
155
|
|
- <el-input type="textarea" v-model="form.remark" :autosize="{ minRows: 4 }" />
|
|
199
|
+ <el-form-item label="绩效说明:" prop="remark" label-width="130px">
|
|
200
|
+ <el-input :disabled="taskName != '绩效上报'" type="textarea" v-model="form.remark" :autosize="{ minRows: 4 }" />
|
|
201
|
+ </el-form-item>
|
|
202
|
+ <el-form-item label="分管审核意见:" prop="managerComment" label-width="130px">
|
|
203
|
+ <el-input type="textarea" v-model="form.managerComment" :autosize="{ minRows: 4 }"
|
|
204
|
+ :disabled="taskName != '分管审核'"></el-input>
|
|
205
|
+ <div class="sign mt10" v-if="form.managerUserId">
|
|
206
|
+ <div class="mr20">签名:<span class="auditor">{{ getUserName(form.managerUserId) }}</span>
|
|
207
|
+ </div>
|
|
208
|
+ <div class="ml20"><span>审核时间:{{ form.managerTime }}</span></div>
|
|
209
|
+ </div>
|
|
210
|
+ </el-form-item>
|
|
211
|
+ <el-form-item label="总经理审批意见:" prop="zjlComment" label-width="130px">
|
|
212
|
+ <el-input type="textarea" v-model="form.zjlComment" :autosize="{ minRows: 4 }"
|
|
213
|
+ :disabled="taskName != '总经理审批'"></el-input>
|
|
214
|
+ <div class="sign mt10" v-if="form.zjlUserId">
|
|
215
|
+ <div class="mr20">签名:<span class="auditor">{{ getUserName(form.zjlUserId) }}</span>
|
|
216
|
+ </div>
|
|
217
|
+ <div class="ml20"><span>审核时间:{{ form.zjlTime }}</span></div>
|
|
218
|
+ </div>
|
|
219
|
+ </el-form-item>
|
|
220
|
+ <el-form-item label="人事制单:" label-width="130px" v-if="taskName == '人事制单'">
|
|
221
|
+ <el-button type="success" icon="el-icon-printer" @click="printPerformanceTable">打印</el-button>
|
156
|
222
|
</el-form-item>
|
157
|
223
|
</el-form>
|
158
|
224
|
<el-row style="text-align: center;" v-if="taskName != ''">
|
159
|
225
|
<el-button type="danger" @click="returnOpen = true" v-show="taskName != '绩效上报'">退 回</el-button>
|
160
|
226
|
<el-button type="warning" @click="saves()">保存</el-button>
|
161
|
|
- <el-button type="primary" @click="completeApply()">提交</el-button>
|
|
227
|
+ <el-button type="primary" @click="completeApply()">{{ taskName == '绩效上报' ? '提交绩效表' : '完成审批' }}</el-button>
|
162
|
228
|
</el-row>
|
163
|
229
|
</el-row>
|
164
|
230
|
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
|
@@ -200,6 +266,13 @@
|
200
|
266
|
<el-button type="primary" @click="submitEdit">确定</el-button>
|
201
|
267
|
</div>
|
202
|
268
|
</el-dialog>
|
|
269
|
+ <el-dialog title="打印绩效统计表" :visible.sync="printDialogVisible" width="800px" append-to-body>
|
|
270
|
+ <performance-print :form="form" :performanceTableData="performanceTableData"
|
|
271
|
+ @cancel="printDialogVisible = false" />
|
|
272
|
+ </el-dialog>
|
|
273
|
+ <el-dialog title="退回" :visible.sync="returnOpen" width="40%" append-to-body>
|
|
274
|
+ <return-btn :taskForm="taskForm" @goBack="$emit('goBack')" @saves="" @cancel="returnOpen = false"></return-btn>
|
|
275
|
+ </el-dialog>
|
203
|
276
|
</div>
|
204
|
277
|
</template>
|
205
|
278
|
|
|
@@ -208,10 +281,18 @@ import { parseTime } from "@/utils/ruoyi";
|
208
|
281
|
import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
|
209
|
282
|
import { listPerformance, getPerformance, addPerformance, updatePerformance, delPerformance } from "@/api/oa/performance/performance"
|
210
|
283
|
import { listPerformanceStaff, getPerformanceStaff, updatePerformanceStaff, getMonthPerformanceList } from "@/api/oa/performance/performanceStaff";
|
|
284
|
+import { getUsersDeptLeaderByDept, getUsersManageLeaderByDept, getUserByPost } from '@/api/system/post'
|
211
|
285
|
import { listProject } from "@/api/oa/project/project";
|
|
286
|
+import { getUserByRole } from "@/api/system/role";
|
212
|
287
|
import { getToken } from "@/utils/auth";
|
|
288
|
+import PerformancePrint from '../components/print/performancePrint.vue';
|
|
289
|
+import returnBtn from '@/views/flowable/form/components/flowBtn/returnBtn.vue';
|
|
290
|
+import ReturnComment from '@/views/flowable/form/components/flowBtn/returnComment.vue';
|
213
|
291
|
|
214
|
292
|
export default {
|
|
293
|
+ components: {
|
|
294
|
+ PerformancePrint, returnBtn, ReturnComment
|
|
295
|
+ },
|
215
|
296
|
props: {
|
216
|
297
|
taskName: {
|
217
|
298
|
type: String,
|
|
@@ -227,8 +308,15 @@ export default {
|
227
|
308
|
baseUrl: process.env.VUE_APP_BASE_API,
|
228
|
309
|
flowData: {},
|
229
|
310
|
form: {},
|
230
|
|
- rules: {},
|
231
|
|
- showAlter: false,
|
|
311
|
+ rules: {
|
|
312
|
+ managerComment: [
|
|
313
|
+ { required: this.taskName == '分管审核', message: '请填写分管领导意见', trigger: 'blur' }
|
|
314
|
+ ],
|
|
315
|
+ zjlComment: [
|
|
316
|
+ { required: this.taskName == '总经理审批', message: '请填写总经理审批意见', trigger: 'blur' }
|
|
317
|
+ ]
|
|
318
|
+ },
|
|
319
|
+ printDialogVisible: false,
|
232
|
320
|
upload: {
|
233
|
321
|
open: false,
|
234
|
322
|
title: "上传绩效表",
|
|
@@ -262,25 +350,27 @@ export default {
|
262
|
350
|
editRow: {},
|
263
|
351
|
editType: '', // 'inner' or 'outer'
|
264
|
352
|
formTotal: 0,
|
|
353
|
+ returnOpen: false,
|
|
354
|
+ showAlter: true,
|
|
355
|
+ groupedPerformanceData: [],
|
265
|
356
|
}
|
266
|
357
|
},
|
267
|
358
|
created() {
|
268
|
359
|
this.initForm();
|
269
|
360
|
},
|
270
|
361
|
methods: {
|
271
|
|
- initForm() {
|
|
362
|
+ async initForm() {
|
272
|
363
|
const formId = this.taskForm.formId;
|
273
|
364
|
if (this.taskName == '绩效上报') {
|
274
|
365
|
this.form.reporter = this.$store.getters.userId;
|
275
|
366
|
this.form.reportDept = this.$store.getters.deptId;
|
276
|
367
|
this.form.reportTime = parseTime(new Date(), "{y}-{m}-{d}")
|
277
|
368
|
}
|
278
|
|
- getPerformance(formId).then(res => {
|
279
|
|
- if (res.data) {
|
280
|
|
- this.formTotal = 1
|
281
|
|
- this.form = res.data;
|
282
|
|
- }
|
283
|
|
- })
|
|
369
|
+ let res = await getPerformance(formId)
|
|
370
|
+ if (res.data) {
|
|
371
|
+ this.formTotal = 1
|
|
372
|
+ this.form = res.data;
|
|
373
|
+ }
|
284
|
374
|
this.getInnerTableData();
|
285
|
375
|
this.getOuterTableData();
|
286
|
376
|
this.getTotalPerformance();
|
|
@@ -319,10 +409,75 @@ export default {
|
319
|
409
|
deptId = this.form.reportDept;
|
320
|
410
|
}
|
321
|
411
|
getMonthPerformanceList({ performanceId: this.taskForm.formId, deptId: deptId }).then(res => {
|
322
|
|
- console.log(res);
|
323
|
412
|
this.performanceTableData = res.data;
|
|
413
|
+ this.processGroupedData();
|
324
|
414
|
})
|
325
|
415
|
},
|
|
416
|
+ processGroupedData() {
|
|
417
|
+ // 按部门分组
|
|
418
|
+ const groupedByDept = {};
|
|
419
|
+ this.performanceTableData.forEach(item => {
|
|
420
|
+ const deptName = item.dept?.deptName || '未分配部门';
|
|
421
|
+ if (!groupedByDept[deptName]) {
|
|
422
|
+ groupedByDept[deptName] = [];
|
|
423
|
+ }
|
|
424
|
+ groupedByDept[deptName].push(item);
|
|
425
|
+ });
|
|
426
|
+
|
|
427
|
+ // 转换为数组并添加部门汇总行
|
|
428
|
+ this.groupedPerformanceData = [];
|
|
429
|
+ Object.entries(groupedByDept).forEach(([deptName, items]) => {
|
|
430
|
+ // 添加部门数据行
|
|
431
|
+ this.groupedPerformanceData.push(...items);
|
|
432
|
+
|
|
433
|
+ // 计算部门汇总
|
|
434
|
+ const deptSummary = {
|
|
435
|
+ isSummary: true,
|
|
436
|
+ 'dept.deptName': deptName,
|
|
437
|
+ producePerformance: items.reduce((sum, item) => sum + (Number(item.producePerformance) || 0), 0),
|
|
438
|
+ managePerformance: items.reduce((sum, item) => sum + (Number(item.managePerformance) || 0), 0)
|
|
439
|
+ };
|
|
440
|
+ this.groupedPerformanceData.push(deptSummary);
|
|
441
|
+ });
|
|
442
|
+ },
|
|
443
|
+ getSummaries(param) {
|
|
444
|
+ const { columns, data } = param;
|
|
445
|
+ const sums = [];
|
|
446
|
+ columns.forEach((column, index) => {
|
|
447
|
+ if (index === 0) {
|
|
448
|
+ sums[index] = '总计';
|
|
449
|
+ return;
|
|
450
|
+ }
|
|
451
|
+ if (index === 1 || index === 2) {
|
|
452
|
+ sums[index] = '';
|
|
453
|
+ return;
|
|
454
|
+ }
|
|
455
|
+ if (index === 5) { // 总计列
|
|
456
|
+ const produceSum = data.reduce((sum, row) => sum + (Number(row.producePerformance) || 0), 0);
|
|
457
|
+ const manageSum = data.reduce((sum, row) => sum + (Number(row.managePerformance) || 0), 0);
|
|
458
|
+ sums[index] = (produceSum + manageSum).toFixed(2);
|
|
459
|
+ return;
|
|
460
|
+ }
|
|
461
|
+ if (index === 6) { // 统计月份列
|
|
462
|
+ sums[index] = '';
|
|
463
|
+ return;
|
|
464
|
+ }
|
|
465
|
+ const values = data.map(item => Number(item[column.property]));
|
|
466
|
+ if (!values.every(value => isNaN(value))) {
|
|
467
|
+ sums[index] = values.reduce((prev, curr) => {
|
|
468
|
+ const value = Number(curr);
|
|
469
|
+ if (!isNaN(value)) {
|
|
470
|
+ return prev + curr;
|
|
471
|
+ } else {
|
|
472
|
+ return prev;
|
|
473
|
+ }
|
|
474
|
+ }, 0).toFixed(2);
|
|
475
|
+ } else {
|
|
476
|
+ sums[index] = '';
|
|
477
|
+ }
|
|
478
|
+ });
|
|
479
|
+ return sums;
|
|
480
|
+ },
|
326
|
481
|
remoteMethod(val) {
|
327
|
482
|
let params = {
|
328
|
483
|
pageNum: 1,
|
|
@@ -367,6 +522,7 @@ export default {
|
367
|
522
|
this.$refs["uploadRef"].clearFiles();
|
368
|
523
|
this.getInnerTableData();
|
369
|
524
|
this.getOuterTableData();
|
|
525
|
+ this.getTotalPerformance();
|
370
|
526
|
},
|
371
|
527
|
/* Excel上传提交按钮 */
|
372
|
528
|
submitUpload() {
|
|
@@ -409,6 +565,13 @@ export default {
|
409
|
565
|
},
|
410
|
566
|
async saves() {
|
411
|
567
|
if (this.formTotal != 0) {
|
|
568
|
+ if (this.taskName == '分管审核') {
|
|
569
|
+ this.form.managerUserId = this.$store.getters.userId;
|
|
570
|
+ this.form.managerTime = this.parseTime(new Date(), '{y}-{m}-{d}');
|
|
571
|
+ } else if (this.taskName == '总经理审批') {
|
|
572
|
+ this.form.zjlUserId = this.$store.getters.userId;
|
|
573
|
+ this.form.zjlTime = this.parseTime(new Date(), '{y}-{m}-{d}');
|
|
574
|
+ }
|
412
|
575
|
await updatePerformance(this.form)
|
413
|
576
|
} else {
|
414
|
577
|
this.form.performanceId = this.taskForm.formId;
|
|
@@ -417,6 +580,49 @@ export default {
|
417
|
580
|
}
|
418
|
581
|
this.$message.success('保存成功')
|
419
|
582
|
},
|
|
583
|
+ completeApply() {
|
|
584
|
+ let msg;
|
|
585
|
+ if (this.taskName == '人事制单') {
|
|
586
|
+ msg = '最后一个节点,提交将结束流程,是否提交?'
|
|
587
|
+ } else {
|
|
588
|
+ msg = '是否提交到下一个流程?'
|
|
589
|
+ }
|
|
590
|
+ this.$modal.confirm(msg).then(res => {
|
|
591
|
+ this.$refs['form'].validate(valid => {
|
|
592
|
+ if (valid) {
|
|
593
|
+ this.saves();
|
|
594
|
+ getNextFlowNode({ taskId: this.taskForm.taskId }).then(async () => {
|
|
595
|
+ if (this.taskName == '绩效上报') {
|
|
596
|
+ let result = await getUsersManageLeaderByDept({ deptId: this.form.reportDept });
|
|
597
|
+ const managerList = result.data.map(element => element.userId);
|
|
598
|
+ this.$set(this.taskForm.variables, "approvalList", managerList);
|
|
599
|
+ this.successComplete();
|
|
600
|
+ } else if (this.taskName == '分管审核') {
|
|
601
|
+ let result = await getUserByPost({ postName: '总经理' })
|
|
602
|
+ this.$set(this.taskForm.variables, "approval", result.data[0].userId);
|
|
603
|
+ this.successComplete();
|
|
604
|
+ } else if (this.taskName == '总经理审批') {
|
|
605
|
+ let result = await getUserByRole({ roleId: 3 })
|
|
606
|
+ this.$set(this.taskForm.variables, "approvalList", result.data);
|
|
607
|
+ this.successComplete();
|
|
608
|
+ } else if (this.taskName == '人事制单') {
|
|
609
|
+ this.$modal.confirm('最后一个节点,提交将结束流程,是否提交?').then(res => {
|
|
610
|
+ this.successComplete();
|
|
611
|
+ })
|
|
612
|
+ }
|
|
613
|
+ })
|
|
614
|
+ } else {
|
|
615
|
+ scrollTo(0, 600)
|
|
616
|
+ }
|
|
617
|
+ })
|
|
618
|
+ })
|
|
619
|
+ },
|
|
620
|
+ successComplete() {
|
|
621
|
+ complete(this.taskForm).then(response => {
|
|
622
|
+ this.$modal.msgSuccess(response.msg);
|
|
623
|
+ this.$emit('goBack')
|
|
624
|
+ })
|
|
625
|
+ },
|
420
|
626
|
setDocument(val) {
|
421
|
627
|
let arr = val.split('/upload')
|
422
|
628
|
this.$set(this.form, 'document', arr[1])
|
|
@@ -424,11 +630,22 @@ export default {
|
424
|
630
|
this.$set(this.form, 'document', "")
|
425
|
631
|
}
|
426
|
632
|
},
|
|
633
|
+ deleteDoc() {
|
|
634
|
+ this.$set(this.form, 'document', '')
|
|
635
|
+ },
|
|
636
|
+ isReturn(val) {
|
|
637
|
+ this.showAlter = val
|
|
638
|
+ },
|
|
639
|
+ printPerformanceTable() {
|
|
640
|
+ this.printDialogVisible = true;
|
|
641
|
+ },
|
427
|
642
|
}
|
428
|
643
|
}
|
429
|
644
|
</script>
|
430
|
645
|
|
431
|
646
|
<style lang="scss" scoped>
|
|
647
|
+@import "@/assets/styles/element-reset.scss";
|
|
648
|
+
|
432
|
649
|
.table-title {
|
433
|
650
|
font-size: 18px;
|
434
|
651
|
font-weight: 700;
|
|
@@ -446,4 +663,53 @@ export default {
|
446
|
663
|
.table-search-bar {
|
447
|
664
|
margin-bottom: 10px;
|
448
|
665
|
}
|
|
666
|
+
|
|
667
|
+.sign {
|
|
668
|
+ display: flex;
|
|
669
|
+ justify-content: flex-end;
|
|
670
|
+ align-items: center;
|
|
671
|
+ padding-right: 80px;
|
|
672
|
+ line-height: 30px;
|
|
673
|
+ /* 如果需要垂直居中 */
|
|
674
|
+}
|
|
675
|
+
|
|
676
|
+:deep(.table-row-class) {
|
|
677
|
+ &.summary-row {
|
|
678
|
+ background-color: #f0f9eb;
|
|
679
|
+ color: #67c23a;
|
|
680
|
+ font-weight: bold;
|
|
681
|
+
|
|
682
|
+ td {
|
|
683
|
+ background-color: #f0f9eb !important;
|
|
684
|
+ border-bottom: 2px solid #67c23a;
|
|
685
|
+ }
|
|
686
|
+ }
|
|
687
|
+}
|
|
688
|
+
|
|
689
|
+:deep(.el-table__row) {
|
|
690
|
+ &.summary-row {
|
|
691
|
+ background-color: #f0f9eb;
|
|
692
|
+
|
|
693
|
+ td {
|
|
694
|
+ background-color: #f0f9eb !important;
|
|
695
|
+ color: #67c23a;
|
|
696
|
+ font-weight: bold;
|
|
697
|
+ border-bottom: 2px solid #67c23a;
|
|
698
|
+ }
|
|
699
|
+ }
|
|
700
|
+}
|
|
701
|
+
|
|
702
|
+.summary-text {
|
|
703
|
+ font-weight: bold;
|
|
704
|
+ font-size: 15px;
|
|
705
|
+}
|
|
706
|
+
|
|
707
|
+:deep(.el-table__row.summary-row) {
|
|
708
|
+ background-color: #f0f9eb;
|
|
709
|
+
|
|
710
|
+ td {
|
|
711
|
+ background-color: #f0f9eb !important;
|
|
712
|
+ border-bottom: 2px solid #67c23a;
|
|
713
|
+ }
|
|
714
|
+}
|
449
|
715
|
</style>
|