فهرست منبع

调整考培档案页

1. 增加部门及职工的表格导出功能.  采用js-xlsx插件导出
moccus 2 سال پیش
والد
کامیت
548c8abeb3
2فایلهای تغییر یافته به همراه110 افزوده شده و 5 حذف شده
  1. 5 4
      exam-06173-vue/package.json
  2. 105 1
      exam-06173-vue/src/views/admin/stat/total/archives.vue

+ 5 - 4
exam-06173-vue/package.json

@@ -44,7 +44,8 @@
     "vue-visibility-change": "^1.2.1",
     "vue-web-cam": "^1.9.0",
     "vuedraggable": "2.20.0",
-    "vuex": "3.1.0"
+    "vuex": "3.1.0",
+    "xlsx": "https://cdn.sheetjs.com/xlsx-0.18.11/xlsx-0.18.11.tgz"
   },
   "devDependencies": {
     "@babel/core": "7.0.0",
@@ -57,13 +58,13 @@
     "babel-jest": "^25.1.0",
     "chalk": "2.4.2",
     "connect": "3.6.6",
+    "node-sass": "^6.0.1",
+    "sass-loader": "^10.0.1",
     "script-ext-html-webpack-plugin": "^2.1.5",
     "svg-sprite-loader": "4.1.3",
     "svgo": "1.2.0",
     "video.js": "^7.17.0",
-    "vue-template-compiler": "2.6.10",
-    "node-sass": "^6.0.1",
-    "sass-loader": "^10.0.1"
+    "vue-template-compiler": "2.6.10"
   },
   "engines": {
     "node": ">=8.9",

+ 105 - 1
exam-06173-vue/src/views/admin/stat/total/archives.vue

@@ -112,6 +112,9 @@
         :label="`职工${selectDeptName ? '(仅查看' + selectDeptName + ')' : ''}`"
         name="zg"
       >
+        <div class="exportBox" style="margin: 10px">
+          <el-button size="small" @click="exportUserExcel">导出</el-button>
+        </div>
         <el-table
           ref="archivesTableRef-zg"
           :data="zgTableData"
@@ -178,6 +181,7 @@ import {
   getUserTotal,
   exportBmExcel,
 } from "@/api/archives/index";
+import { utils, writeFileXLSX } from 'xlsx';
 import { Message } from "element-ui";
 export default {
   data() {
@@ -426,9 +430,109 @@ export default {
     // 导出 excel
     exportExcel() {
       if (this.date && this.date.length) {
-        exportBmExcel({
+        // exportBmExcel({
+        //   statDateL: this.date[0],
+        //   statDateR: this.date[1],
+        // });
+        getDepartTotal({
+          statDateL: this.date[0],
+          statDateR: this.date[1],
+        }).then((res) => {
+          res.data.forEach((ele) => {
+            ele['部门编码'] = ele.deptCode
+            ele['部门名称'] = ele.deptName
+            ele['应培训人数'] = ele.ecTotalUser
+            ele['实培训人数'] = ele.ecActualUser
+            ele['培训率'] = this.renderNumber(ele.ecActualUser, ele.ecTotalUser)
+            ele['人均学时'] = this.renderNumber(ele.ecActualUser, ele.ecTotalMin);
+            ele['累积学时'] = ele.ecTotalMin
+            ele['应考试人数'] = ele.ecTotalUser
+            ele['实考试人数'] = ele.eeActualUser
+            ele['考试率'] = this.renderNumber(ele.eeActualUser, ele.eeTotalUser);
+            ele['考试合格率'] = this.renderNumber(ele.eePassUser, ele.eeActualUser);
+            delete ele.deptName
+            delete ele.deptCode
+            delete ele.ecTotalUser
+            delete ele.ecActualUser
+            delete ele.ecTotalMin
+            delete ele.ecPassUser
+            delete ele.eeActualUser
+            delete ele.eePassUser
+            delete ele.eeTotalUser
+          });
+          const ws = utils.json_to_sheet(res.data);
+          const wb = utils.book_new();
+          utils.book_append_sheet(wb, ws, "sheet1");
+          writeFileXLSX(wb, "部门统计-导出.xlsx");
+        });
+      } else {
+        Message.error("搜索条件日期区间不可为空");
+      }
+    },
+        // 导出 excel
+        exportUserExcel() {
+      if (this.date && this.date.length) {
+        // exportBmExcel({
+        //   statDateL: this.date[0],
+        //   statDateR: this.date[1],
+        // });
+        getUserTotal({
           statDateL: this.date[0],
           statDateR: this.date[1],
+          deptCode: "",
+          realName: "",
+        }).then((res) => {
+          let zgTableData = [];
+          if (!this.selectDeptCode) {
+            res.data.forEach((ele) => {
+              ele['姓名'] = ele.realName
+              ele['所属部门'] = ele.deptName
+              ele['参与课程数'] = ele.courseNum
+              ele['总学时'] = ele.totalMin
+              ele['完成率'] = this.renderNumber(ele.learnCourse, ele.courseNum);
+              ele['参与考试次数'] = ele.tryCount
+              ele['及格次数'] = ele.passed
+              ele['及格率'] = this.renderNumber(ele.passed, ele.tryCount);
+              delete ele.courseNum
+              delete ele.deptCode
+              delete ele.deptName
+              delete ele.learnCourse
+              delete ele.passed
+              delete ele.realName
+              delete ele.totalMin
+              delete ele.tryCount
+              delete ele.userName
+            });
+            zgTableData = res.data;
+          } else {
+            res.data.forEach((ele) => {
+              if (ele.deptCode === this.selectDeptCode) {
+                ele['姓名'] = ele.realName
+                ele['所属部门'] = ele.deptName
+                ele['参与课程数'] = ele.courseNum
+                ele['总学时'] = ele.totalMin
+                ele['完成率'] = this.renderNumber(ele.learnCourse, ele.courseNum);
+                ele['参与考试次数'] = ele.tryCount
+                ele['及格次数'] = ele.passed
+                ele['及格率'] = this.renderNumber(ele.passed, ele.tryCount);
+                delete ele.courseNum
+                delete ele.deptCode
+                delete ele.deptName
+                delete ele.learnCourse
+                delete ele.passed
+                delete ele.realName
+                delete ele.totalMin
+                delete ele.tryCount
+                delete ele.userName
+                zgTableData.push(ele);
+              }
+            });
+          }
+          const ws = utils.json_to_sheet(zgTableData);
+          const wb = utils.book_new();
+          utils.book_append_sheet(wb, ws, "sheet1");
+          writeFileXLSX(wb, "职工统计-导出.xlsx");
+
         });
       } else {
         Message.error("搜索条件日期区间不可为空");