ly 2 лет назад
Родитель
Сommit
bd8913f6f1

+ 5 - 2
master/src/main/java/com/ruoyi/project/training/controller/TTrainingDeviceController.java

@@ -66,7 +66,7 @@ public class TTrainingDeviceController extends BaseController
      * 查询人员-装置级培训关系列表
      */
     @GetMapping("/deviceList")
-    public List<List> deviceList(TTrainingDevice tTrainingDevice)
+    public Map<String, Object> deviceList(TTrainingDevice tTrainingDevice)
     {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM");
@@ -174,7 +174,10 @@ public class TTrainingDeviceController extends BaseController
             deviceLevelList.add(device);
             deviceLevelList.add(deviceDate);
         }
-        return deviceLevelList;
+        AjaxResult ajaxResult = new AjaxResult();
+        ajaxResult.put("deviceLevelList", deviceLevelList);
+        ajaxResult.put("staffmgrs" , staffmgrs);
+        return ajaxResult;
     }
 
     /**

+ 6 - 16
master/src/main/java/com/ruoyi/project/training/controller/TTrainingParticipantsController.java

@@ -1,27 +1,15 @@
 package com.ruoyi.project.training.controller;
 
-import java.io.IOException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
-import com.alibaba.fastjson.JSON;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.project.plant.domain.TStaffmgr;
 import com.ruoyi.project.plant.service.ITStaffmgrService;
-import com.ruoyi.project.system.domain.SysDept;
-import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysDictTypeService;
-import com.ruoyi.project.training.domain.TNewemployee;
 import com.ruoyi.project.training.domain.TTrainingCompanylevel;
 import com.ruoyi.project.training.service.ITTrainingCompanylevelService;
 import org.apache.commons.lang.StringUtils;
-import org.apache.poi.ss.usermodel.*;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
@@ -32,7 +20,6 @@ import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
-import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 人员-公司级培训关系Controller
@@ -70,7 +57,7 @@ public class TTrainingParticipantsController extends BaseController
      * 查询人员-公司级培训关系列表
      */
     @GetMapping("/companyList")
-    public List<List> companyList(TTrainingParticipants tTrainingParticipants)
+    public Map<String, Object> companyList(TTrainingParticipants tTrainingParticipants)
     {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         List<TTrainingParticipants> list = tTrainingParticipantsService.selectTTrainingParticipantsList(tTrainingParticipants);
@@ -140,7 +127,10 @@ public class TTrainingParticipantsController extends BaseController
             companyLevelList.add(company);
             companyLevelList.add(companyDate);
         }
-        return companyLevelList;
+        AjaxResult ajaxResult = new AjaxResult();
+        ajaxResult.put("companyLevelList", companyLevelList);
+        ajaxResult.put("staffmgrs" , staffmgrs);
+        return ajaxResult;
     }
 
     /**

+ 1 - 0
ui/src/assets/icons/svg/anquan.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1670400476035" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15792" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M512 63.2L160.8 226.4v244.8c0 226.4 149.6 437.6 351.2 489.6 201.6-51.2 351.2-263.2 351.2-489.6V226.4L512 63.2z m-8 574.4l-45.6 45.6-45.6-45.6-90.4-90.4 45.6-45.6L458.4 592l204-204 45.6 45.6L504 637.6z" p-id="15793"></path></svg>

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
ui/src/assets/icons/svg/huanbao.svg


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
ui/src/assets/icons/svg/weisheng.svg


+ 1 - 0
ui/src/assets/icons/svg/xiaofang.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1670400519311" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16769" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M256 224h512v736H256V224z m256 512a160 160 0 1 0 0-320 160 160 0 0 0 0 320z m0-64a96 96 0 1 1 0-192 96 96 0 0 1 0 192z" p-id="16770"></path><path d="M192 992v-96h640v96z" p-id="16771"></path><path d="M480 32h64a32 32 0 0 1 32 32v64h-128V64a32 32 0 0 1 32-32z" p-id="16772"></path><path d="M256.736 256C266.816 148.608 377.28 64 512 64s245.184 84.608 255.264 192H256.736z" p-id="16773"></path><path d="M224 272a32 32 0 1 1 0-64h573.216a32 32 0 1 1 0 64H224zM256 668.736H224a32 32 0 0 1-32-32V480a32 32 0 0 1 32-32h32a32 32 0 0 1 32 32v156.736a32 32 0 0 1-32 32zM800 668.736h-32a32 32 0 0 1-32-32V480a32 32 0 0 1 32-32h32a32 32 0 0 1 32 32v156.736a32 32 0 0 1-32 32z" p-id="16774"></path></svg>

+ 8 - 8
ui/src/views/dashboard/PanelGroup.vue

@@ -3,11 +3,11 @@
     <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
       <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
         <div class="card-panel-icon-wrapper icon-people">
-          <svg-icon icon-class="peoples" class-name="card-panel-icon" />
+          <svg-icon icon-class="anquan" class-name="card-panel-icon" />
         </div>
         <div class="card-panel-description">
           <div class="card-panel-text">
-            {{ $t('访客') }}
+            安全
           </div>
           <count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
         </div>
@@ -16,11 +16,11 @@
     <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
       <div class="card-panel" @click="handleSetLineChartData('messages')">
         <div class="card-panel-icon-wrapper icon-message">
-          <svg-icon icon-class="message" class-name="card-panel-icon" />
+          <svg-icon icon-class="huanbao" class-name="card-panel-icon" />
         </div>
         <div class="card-panel-description">
           <div class="card-panel-text">
-           {{ $t('消息') }}
+           环保
           </div>
           <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
         </div>
@@ -29,11 +29,11 @@
     <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
       <div class="card-panel" @click="handleSetLineChartData('purchases')">
         <div class="card-panel-icon-wrapper icon-money">
-          <svg-icon icon-class="money" class-name="card-panel-icon" />
+          <svg-icon icon-class="xiaofang" class-name="card-panel-icon" />
         </div>
         <div class="card-panel-description">
           <div class="card-panel-text">
-           {{ $t('金额') }}
+           消防
           </div>
           <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
         </div>
@@ -42,11 +42,11 @@
     <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
       <div class="card-panel" @click="handleSetLineChartData('shoppings')">
         <div class="card-panel-icon-wrapper icon-shopping">
-          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
+          <svg-icon icon-class="weisheng" class-name="card-panel-icon" />
         </div>
         <div class="card-panel-description">
           <div class="card-panel-text">
-           {{ $t('订单') }}
+           卫生
           </div>
           <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
         </div>

+ 79 - 64
ui/src/views/login.vue

@@ -3,11 +3,11 @@
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
       <div class="title-container">
         <h3 class="title">{{ $t('login.title') }}</h3>
-        <lang-select class="set-language" />
+        <lang-select class="set-language"/>
       </div>
       <el-form-item prop="username">
         <el-input v-model="loginForm.username" type="text" auto-complete="off" :placeholder="$t('login.username')">
-          <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
+          <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon"/>
         </el-input>
       </el-form-item>
       <el-form-item prop="password">
@@ -18,24 +18,27 @@
           :placeholder="$t('login.password')"
           @keyup.enter.native="handleLogin"
         >
-          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
+          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon"/>
         </el-input>
       </el-form-item>
-<!--      <el-form-item prop="code">-->
-<!--        <el-input-->
-<!--          v-model="loginForm.code"-->
-<!--          auto-complete="off"-->
-<!--          :placeholder="$t('login.code')"-->
-<!--          style="width: 63%"-->
-<!--          @keyup.enter.native="handleLogin"-->
-<!--        >-->
-<!--          <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />-->
-<!--        </el-input>-->
-<!--        <div class="login-code">-->
-<!--          <img :src="codeUrl" @click="getCode" class="login-code-img"/>-->
-<!--        </div>-->
-<!--      </el-form-item>-->
-      <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">{{ $t('login.rememberPassword') }}</el-checkbox>
+      <!--      <el-form-item prop="code">-->
+      <!--        <el-input-->
+      <!--          v-model="loginForm.code"-->
+      <!--          auto-complete="off"-->
+      <!--          :placeholder="$t('login.code')"-->
+      <!--          style="width: 63%"-->
+      <!--          @keyup.enter.native="handleLogin"-->
+      <!--        >-->
+      <!--          <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />-->
+      <!--        </el-input>-->
+      <!--        <div class="login-code">-->
+      <!--          <img :src="codeUrl" @click="getCode" class="login-code-img"/>-->
+      <!--        </div>-->
+      <!--      </el-form-item>-->
+      <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">{{
+          $t('login.rememberPassword')
+        }}
+      </el-checkbox>
       <el-form-item style="width:100%;">
         <el-button
           :loading="loading"
@@ -48,18 +51,18 @@
           <span v-else>{{ $t('login.loading') }}</span>
         </el-button>
       </el-form-item>
-      <el-form-item style="width:100%;">
-        <el-button
-          :loading="loading"
-          size="medium"
-          type="primary"
-          style="width:100%;"
-          @click.native.prevent="doSocialLogin"
-        >
-          <span v-if="!loading"> 员工卡登录 </span>
-          <span v-else>{{ $t('login.loading') }}</span>
-        </el-button>
-      </el-form-item>
+<!--      <el-form-item style="width:100%;">-->
+<!--        <el-button-->
+<!--          :loading="loading"-->
+<!--          size="medium"-->
+<!--          type="primary"-->
+<!--          style="width:100%;"-->
+<!--          @click.native.prevent="doSocialLogin"-->
+<!--        >-->
+<!--          <span v-if="!loading"> 员工卡登录 </span>-->
+<!--          <span v-else>{{ $t('login.loading') }}</span>-->
+<!--        </el-button>-->
+<!--      </el-form-item>-->
       <el-form-item style="width:100%;">
         <el-button
           :loading="loading"
@@ -81,14 +84,14 @@
 </template>
 
 <script>
-import { getCodeImg } from "@/api/login";
+import {getCodeImg} from "@/api/login";
 import Cookies from "js-cookie";
-import { encrypt, decrypt } from '@/utils/jsencrypt'
+import {encrypt, decrypt} from '@/utils/jsencrypt'
 import LangSelect from '@/components/LangSelect'
 
 export default {
   name: "Login",
-  components: { LangSelect },
+  components: {LangSelect},
   data() {
     return {
       codeUrl: "",
@@ -102,12 +105,12 @@ export default {
       },
       loginRules: {
         username: [
-          { required: true, trigger: "blur", message: this.$t('login.usernameNotEmpty') }
+          {required: true, trigger: "blur", message: this.$t('login.usernameNotEmpty')}
         ],
         password: [
-          { required: true, trigger: "blur", message: this.$t('login.passwordNotEmpty')}
+          {required: true, trigger: "blur", message: this.$t('login.passwordNotEmpty')}
         ],
-        code: [{ required: true, trigger: "change", message: this.$t('login.codeNotEmpty') }]
+        code: [{required: true, trigger: "change", message: this.$t('login.codeNotEmpty')}]
       },
       loading: false,
       redirect: undefined
@@ -115,13 +118,14 @@ export default {
   },
   watch: {
     $route: {
-      handler: function(route) {
+      handler: function (route) {
         this.redirect = route.query && route.query.redirect;
       },
       immediate: true
     }
   },
   created() {
+    console.log(window.location)
     let code = window.location.search.replace("?code=" , '');
     if (code) {
       code = code.substring(0, code.indexOf("&"));
@@ -130,7 +134,7 @@ export default {
     }
     this.getCode();
     this.getCookie();
-    if (!this.$store.getters.language){
+    if (!this.$store.getters.language) {
       console.log("默认中文")
       this.$i18n.locale = 'zh'
       this.$store.dispatch('app/setLanguage', 'zh')
@@ -158,9 +162,9 @@ export default {
         if (valid) {
           this.loading = true;
           if (this.loginForm.rememberMe) {
-            Cookies.set("username", this.loginForm.username, { expires: 30 });
-            Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
-            Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
+            Cookies.set("username", this.loginForm.username, {expires: 30});
+            Cookies.set("password", encrypt(this.loginForm.password), {expires: 30});
+            Cookies.set('rememberMe', this.loginForm.rememberMe, {expires: 30});
           } else {
             Cookies.remove("username");
             Cookies.remove("password");
@@ -169,7 +173,7 @@ export default {
           this.$store
             .dispatch("Login", this.loginForm)
             .then(() => {
-              this.$router.push({ path: this.redirect || "/404" });
+              this.$router.push({path: this.redirect || "/404"});
             })
             .catch(() => {
               this.loading = false;
@@ -179,11 +183,11 @@ export default {
       });
     },
     doSocialLogin() {
-        window.location.href = 'https://gitee.com/oauth/authorize?client_id=e7faeabf239846288ee07e6c40066cbd0dcc46cb1c1dea37c602c29a2368c6b8&redirect_uri=http%3A%2F%2Flocalhost%2Fcpms%2Findex.html%23%2FsocialLogin&response_type=code';
+      window.location.href = 'https://gitee.com/oauth/authorize?client_id=e7faeabf239846288ee07e6c40066cbd0dcc46cb1c1dea37c602c29a2368c6b8&redirect_uri=http%3A%2F%2Flocalhost%2Fcpms%2Findex.html%23%2FsocialLogin&response_type=code';
     },
     /** Azure登录 */
     doAzureLogin() {
-        window.location.href = 'https://login.microsoftonline.com/7503e40a-97ec-4eb9-bf6d-2836e57e882d/oauth2/v2.0/authorize?client_id=3db6f125-db4d-456b-a76e-a6d03182e845&redirect_uri=http%3A%2F%2Flocalhost%2Fcpms%2Findex.html%23%2FazureLogin&scope=api://3db6f125-db4d-456b-a76e-a6d03182e845/User.Read&response_type=code';
+      window.location.href = 'https://login.microsoftonline.com/7503e40a-97ec-4eb9-bf6d-2836e57e882d/oauth2/v2.0/authorize?client_id=3db6f125-db4d-456b-a76e-a6d03182e845&redirect_uri=http%3A%2F%2Flocalhost%2Fcpms%2Findex.html%23%2FazureLogin&scope=api://3db6f125-db4d-456b-a76e-a6d03182e845/User.Read&response_type=code';
     },
   }
 };
@@ -195,10 +199,11 @@ export default {
   justify-content: center;
   align-items: center;
   height: 100%;
-  //background-image: url("../assets/image/CPMS20210107.jpg");
-  background-image: url("../assets/image/cpms-test.jpg");
+  background-image: url("../assets/image/CPMS20210107.jpg");
+  //background-image: url("../assets/image/cpms-test.jpg");
   background-size: cover;
 }
+
 .title {
   margin: 0px auto 15px auto;
   text-align: center;
@@ -206,49 +211,58 @@ export default {
 }
 
 .login-form {
-  position:absolute;
-  top:50%;
-  left:50%;
-  transform:translate(-50%,-50%);
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
   /*实现块元素百分比下居中*/
-  width:450px;
-  padding:50px;
+  width: 450px;
+  padding: 50px;
   background: #2a8db9db;
-  box-sizing:border-box;
-  box-shadow: 0px 15px 25px rgba(0,0,0,.5);
-  border-radius:15px;
+  box-sizing: border-box;
+  box-shadow: 0px 15px 25px rgba(0, 0, 0, .5);
+  border-radius: 15px;
+
   .el-input {
     height: 38px;
+
     input {
       height: 38px;
     }
   }
+
   .input-icon {
     height: 39px;
     width: 14px;
     margin-left: 2px;
   }
 }
+
 .login-tip {
   font-size: 13px;
   text-align: center;
   color: #bfbfbf;
 }
+
 .login-code {
   width: 33%;
   height: 38px;
   float: right;
+
   img {
     cursor: pointer;
     vertical-align: middle;
   }
 }
+
 .el-dropdown {
   color: #ffffff;
 }
+
 .el-checkbox {
   color: #ffffff;
 }
+
 .el-login-footer {
   height: 40px;
   line-height: 40px;
@@ -261,6 +275,7 @@ export default {
   font-size: 12px;
   letter-spacing: 1px;
 }
+
 .login-code-img {
   height: 38px;
 }
@@ -268,14 +283,14 @@ export default {
 </style>
 
 <style scoped>
-  .el-button--primary {
-    color: #FFFFFF;
-    background-color: #40a9ff;
-    border-color: #40a9ff;
-  }
+.el-button--primary {
+  color: #FFFFFF;
+  background-color: #40a9ff;
+  border-color: #40a9ff;
+}
 
-  .el-button:hover, .el-button:focus {
-    border-color: #6abfff;
-    background-color: #6abfff;
-  }
+.el-button:hover, .el-button:focus {
+  border-color: #6abfff;
+  background-color: #6abfff;
+}
 </style>

+ 0 - 1
ui/src/views/socialLogin.vue

@@ -40,7 +40,6 @@ export default {
         this.msgSuccess(this.$t('成功'));
       });
     }
-
   }
 };
 </script>

Разница между файлами не показана из-за своего большого размера
+ 294 - 224
ui/src/views/training/trainingrecords/index.vue


Некоторые файлы не были показаны из-за большого количества измененных файлов