17 Commits

Author SHA1 Message Date
280636bd14 修改链接 2023-06-09 17:45:50 +08:00
679c12fb92 保存进度! 2023-04-04 16:10:47 +08:00
e3ada43d48 保存进度! 2023-03-28 15:09:28 +08:00
1a1e230ead 保存进度! 2023-03-27 17:53:21 +08:00
8b0f8e618b 保存进度! 2023-03-27 17:52:22 +08:00
a0f23c3a4c 保存进度! 2023-03-27 17:51:01 +08:00
0bf3ae2520 保存进度! 2023-03-27 17:49:16 +08:00
0c9df7d70d lint一下下 2023-03-27 17:43:54 +08:00
57dc7568b1 。。。 2023-03-27 15:30:10 +08:00
968eaed581 保存进度! 2023-03-27 15:18:57 +08:00
304acb5c6c 消除一个跳转路由路径bug 2023-03-27 14:49:08 +08:00
64b59e02ae 独立项目 2023-03-25 18:02:59 +08:00
9e25df4b6c 独立项目 2023-03-25 18:02:48 +08:00
ebf4a37529 修复bug 2023-03-22 01:04:56 +08:00
ba44c9bc31 整理代码 2023-03-21 23:49:27 +08:00
cdc7efce15 Merge branch 'feature-requirement' of http://222.76.244.118:3000/CPICXIM/it-console into feature-requirement 2023-03-21 23:29:11 +08:00
bf19c775cf 修改eslint配置文件 2023-03-21 23:28:44 +08:00
53 changed files with 8268 additions and 15166 deletions

View File

@@ -2,14 +2,16 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-12-15 11:11:21 * @Date: 2022-12-15 11:11:21
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-01-17 23:28:21 * @LastEditTime: 2023-03-25 17:28:39
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\web\controllers\account\P13AccountCheckController.java * @FilePath: /后端-用户验证/src/main/java/com/cpic/xim/web/controllers/account/P13AccountCheckController.java
* @Description: P13账号验证用Controller。 * @Description: P13账号验证用Controller。
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
*/ */
package com.cpic.xim.web.controllers.account; package com.cpic.xim.web.controllers.account;
import com.cpic.xim.myutils.account.CpicXIMStaffInfo;
import com.cpic.xim.myutils.account.LdapAccountCheck;
import java.io.IOException; import java.io.IOException;
import java.nio.channels.IllegalSelectorException; import java.nio.channels.IllegalSelectorException;
import java.sql.SQLException; import java.sql.SQLException;
@@ -21,14 +23,12 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.cpic.xim.myutils.account.CpicXIMStaffInfo;
import com.cpic.xim.myutils.account.LdapAccountCheck;
@Controller @Controller
@RequestMapping(path = "/account") @RequestMapping(path = "/account")
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class P13AccountCheckController public class P13AccountCheckController {
{
/***************************************************** /*****************************************************
* 根据用户提供的P09工号或者P13账号密码查找用户信息并AD域服务器验证p13账号密码。 * 根据用户提供的P09工号或者P13账号密码查找用户信息并AD域服务器验证p13账号密码。
* 验证通过即返回人员信息。 * 验证通过即返回人员信息。
@@ -40,37 +40,31 @@ public class P13AccountCheckController
*****************************************************/ *****************************************************/
@ResponseBody @ResponseBody
@RequestMapping(path = "/p13_account_check") @RequestMapping(path = "/p13_account_check")
public P13AccountCheckResult checkP13Account( @RequestBody P13AccountCheckRequest param, public P13AccountCheckResult checkP13Account(
HttpServletRequest request, HttpServletResponse response ) @RequestBody P13AccountCheckRequest param,
throws IllegalSelectorException, IOException HttpServletRequest request,
{ HttpServletResponse response
) throws IllegalSelectorException, IOException {
P13AccountCheckResult result = new P13AccountCheckResult(); P13AccountCheckResult result = new P13AccountCheckResult();
ServletContext context = request.getServletContext(); ServletContext context = request.getServletContext();
// context.getAttribute( null );
CpicXIMStaffInfo staff = null; CpicXIMStaffInfo staff = null;
try try {
{
// 先根据用户输入的09工号或p13账号获得p13账号确定账号存在 // 先根据用户输入的09工号或p13账号获得p13账号确定账号存在
staff = CpicXIMStaffInfo.getStaffInfo(param.getP13Account()); staff = CpicXIMStaffInfo.getStaffInfo(param.getP13Account());
} } catch (SQLException error) {
catch ( SQLException error )
{
staff = null; staff = null;
result.setMessage("人员工号或P13账号不存在"); result.setMessage("人员工号或P13账号不存在");
result.setSuccess(false); result.setSuccess(false);
} } catch (ClassNotFoundException error) {
catch ( ClassNotFoundException error )
{
staff = null; staff = null;
result.setMessage("加载Oracle驱动失败"); result.setMessage("加载Oracle驱动失败");
result.setSuccess(false); result.setSuccess(false);
} }
// 查询结果是null说明没有查询到结果工号或p13账号不存在返回结果。 // 查询结果是null说明没有查询到结果工号或p13账号不存在返回结果。
if ( staff == null ) if (staff == null) {
{
result.setMessage("人员工号或P13账号不存在"); result.setMessage("人员工号或P13账号不存在");
result.setSuccess(false); result.setSuccess(false);
@@ -78,8 +72,7 @@ public class P13AccountCheckController
} }
// 判断一下p13是否存在如果不存在就结束过程 // 判断一下p13是否存在如果不存在就结束过程
if ( staff.getP13UID().isEmpty() == true ) if (staff.getP13UID().isEmpty() == true) {
{
result.setMessage("P13账号不存在请联系信息技术部申请账号"); result.setMessage("P13账号不存在请联系信息技术部申请账号");
result.setSuccess(false); result.setSuccess(false);
@@ -87,11 +80,12 @@ public class P13AccountCheckController
} }
// 进行ldap验证 // 进行ldap验证
boolean ldapCheckResult = boolean ldapCheckResult = LdapAccountCheck.ldapLogin(
LdapAccountCheck.ldapLogin( staff.getP13UID(), param.getPassword() ); staff.getP13UID(),
param.getPassword()
);
if ( ldapCheckResult == true ) if (ldapCheckResult == true) {
{
result.setSuccess(true); result.setSuccess(true);
result.setMessage("验证成功!"); result.setMessage("验证成功!");
result.setStaffInfo(staff); result.setStaffInfo(staff);
@@ -100,9 +94,7 @@ public class P13AccountCheckController
HttpSession session = request.getSession(); HttpSession session = request.getSession();
session.setAttribute("staff_info", staff); session.setAttribute("staff_info", staff);
} } else {
else
{
result.setSuccess(false); result.setSuccess(false);
result.setMessage("密码错误!"); result.setMessage("密码错误!");
} }

View File

@@ -1,37 +0,0 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
<context:component-scan base-package="com.cpic.xim" />
<mvc:annotation-driven />
<mvc:default-servlet-handler />
<!-- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property
name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean> -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<property name="maxUploadSize" value="-1" />
</bean>
</beans>

View File

@@ -1,57 +0,0 @@
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/account/p13_account_check</url-pattern>
</servlet-mapping>
<!-- 用于验证Token的Filter -->
<filter>
<filter-name>token-filter</filter-name>
<filter-class>com.cpic.xim.web.filters.token.TokenFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>token-filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<!-- 用于实现跨域访问的Filter -->
<filter>
<filter-name>cros-filter</filter-name>
<filter-class>com.cpic.xim.web.filters.cros.CrosFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cros-filter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
<!-- 配置文件路径参数 -->
<context-param>
<param-name>config_file_location</param-name>
<param-value>config.xml</param-value>
</context-param>
<listener>
<listener-class>com.cpic.xim.web.listener.ContextLoaderListener</listener-class>
</listener>
</web-app>

View File

@@ -1,68 +0,0 @@
html {
--backupground-color: #f7f7f7;
--btn-color-blue: #307dbe;
--btn-color-yellow: #f7b24d;
--btn-color-green: #5bad60;
--btn-color-red: #e56651;
--btn-font-color: #fff;
background-color: #eee;
}
#root,
#app {
height: 100vh;
width: 100vw;
position: fixed;
padding: 50px;
/* font-size: 0; */
overflow: auto;
}
#root,
#app * + * {
margin-top: 15px;
}
hr {
background-color: steelblue;
border: none;
height: 3px;
}
.test {
width: 110vw;
height: 100vh;
border: 1px solid red;
overflow: auto;
}
button {
padding: 5px 10px;
background-color: var(--btn-color-red);
color: var(--btn-font-color);
width: 10em;
border: none;
border-radius: 0.25em;
font-size: 1.5rem;
}
button + button {
margin-left: 0.5em;
}
button:active {
background-color: var(--btn-font-color);
color: var(--btn-color-red);
}
input {
border: none;
outline: solid 2px #e56651;
font-size: 2rem;
}
label {
display: inline-block;
font-size: 2rem;
margin-top: 15px;
}

View File

@@ -1,25 +0,0 @@
#app {
width: 100vw;
height: 100vh;
padding: 0px;
margin: 0px;
display: flex;
flex-direction: column;
}
#header {
flex-basis: 50px;
border: 1px solid red;
max-height: 50px;
}
#main {
flex-grow: 1;
border: 1px solid red;
}
#footer {
flex-basis: 100px;
max-height: 100px;
border: 1px solid red;
}

View File

@@ -1,349 +0,0 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}

View File

@@ -1,11 +0,0 @@
.panel {
display: flex;
justify-content: center;
align-items: center;
}
.main_form {
height: 50vh;
width: 50vw;
border: 1px solid red;
}

View File

@@ -1,20 +0,0 @@
:root {
font-size: 1em;
box-sizing: border-box;
}
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: inherit;
}
body {
font-family: Arial, Helvetica, sans-serif;
}
.pointer {
cursor: pointer;
}

View File

@@ -1,17 +0,0 @@
a,
p {
padding: 5rem;
border: 1px solid red;
line-height: 2rem;
margin: 2em;
}
.warp_test {
width: 5rem;
border: 1px solid red;
}
ol,
li {
background-color: cornflowerblue;
}

View File

@@ -1,23 +0,0 @@
<%-- /*
* @Author: Kane
* @Date: 2022-10-21 00:14:43
* @LastEditors: Kane
* @LastEditTime: 2022-10-21 00:16:48
* @FilePath: \car_dealer\src\main\webapp\test.jsp
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/ --%>
<%@ page contentType="text/html;charset=UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>

View File

@@ -1,4 +0,0 @@
#Created by Apache Maven 3.8.6
artifactId=admin-system
groupId=com.cpic.xim
version=1.0-SNAPSHOT

View File

@@ -1,13 +0,0 @@
com\cpic\xim\web\filters\cros\CrosFilter.class
com\cpic\xim\web\listener\ContextLoaderListener.class
com\cpic\xim\web\filters\token\TokenFilter.class
com\cpic\xim\myutils\account\CpicXIMStaffInfo.class
com\cpic\xim\myutils\config\json\ConfigLoader.class
com\cpic\xim\web\controllers\account\P13AccountCheckResult.class
com\cpic\xim\web\controllers\FileUpload\FileUploadResult.class
com\cpic\xim\myutils\config\json\AppConfig.class
com\cpic\xim\myutils\config\json\DatabaseConfig.class
com\cpic\xim\web\controllers\FileUpload\FileUpload.class
com\cpic\xim\web\controllers\account\P13AccountCheckController.class
com\cpic\xim\web\controllers\account\P13AccountCheckRequest.class
com\cpic\xim\myutils\account\LdapAccountCheck.class

View File

@@ -1,13 +0,0 @@
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\web\controllers\account\P13AccountCheckController.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\web\controllers\FileUpload\FileUpload.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\myutils\account\LdapAccountCheck.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\web\controllers\account\P13AccountCheckRequest.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\web\filters\token\TokenFilter.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\myutils\account\CpicXIMStaffInfo.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\myutils\config\json\ConfigLoader.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\web\controllers\account\P13AccountCheckResult.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\web\controllers\FileUpload\FileUploadResult.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\myutils\config\json\DatabaseConfig.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\myutils\config\json\AppConfig.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\web\listener\ContextLoaderListener.java
D:\develop\cpicxim\it-console\code\java\后端-用户验证\src\main\java\com\cpic\xim\web\filters\cros\CrosFilter.java

View File

@@ -1,3 +1,12 @@
VUE_APP_API_URL_LOGIN = "http://222.76.244.118:11001/admin-system/account/p13_account_check" ###
VUE_APP_API_URL_UPLOAD_FILE= "http://222.76.244.118:11001/admin-system/file/file-upload.do" # @Author: Kane
VUE_APP_API_URL_REQUIREMENT_STATUS= "http://222.76.244.118:11001/requirement/query_requirement_status.do" # @Date: 2023-02-23 09:41:37
# @LastEditors: Kane
# @FilePath: /it-console/.env.development
# @Description:
#
# Copyright (c) ${2022} by Kane, All Rights Reserved.
###
VUE_APP_API_URL_LOGIN = "http://222.76.244.118:11101/admin-system/account/p13_account_check"
VUE_APP_API_URL_UPLOAD_FILE= "http://222.76.244.118:11101/admin-system/file/file-upload.do"
VUE_APP_API_URL_REQUIREMENT_STATUS= "http://222.76.244.118:11101/requirement/query_requirement_status.do"

View File

@@ -0,0 +1,174 @@
/*
* @Author: Kane
* @Date: 2023-03-14 09:19:21
* @LastEditors: Kane
* @FilePath: /it-console/.eslintrc.cjs
* @Description: eslint 配置文件
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
module.exports = {
root: true,
env: { // 需要在env中指定运行的环境这些环境其实就是一组预定义的全局变量让 ESLint 知道当前环境存在这些全局变量
node: true,
browser: true,
es2021: true,
},
parser:"espree",
parserOptions:{
sourceType: "module",
ecmaVersion: 2021,
},
extends:["eslint:recommended",],
rules:{
indent: ["warn", 4,],
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-unused-vars": "warn",
semi: ["error", "always",], // 控制行尾部分号
quotes: ["error", "double",],
"comma-dangle": ["error", {
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},], // 数组和对象键值对最后一个逗号
"comma-style": ["error", "last",], // 逗号在行位
"array-bracket-spacing": ["error", "never",],
"no-undef-init": "error",
"no-invalid-this": "error",
"no-use-before-define": "error",
"no-shadow-restricted-names": "error", // 禁止对一些关键字或者保留字进行赋值操作比如NaN、Infinity、undefined、eval、arguments等
"comma-spacing": ["error", { before: false, after: true, },],
"brace-style": ["error", "allman", { allowSingleLine: true, },],
"prefer-const": "warn",
"space-before-function-paren": ["error", {
anonymous: "always",
named: "never",
asyncArrow: "always",
},],
},
overrides: [
{
files: ["*.vue",],
parser: "vue-eslint-parser",
parserOptions: {
ecmaVersion: 2021,
sourceType: "module",
parser: { // <script>标签中的lang属性配置不同的parser
ts: "@typescript-eslint/parser",
js: "espree",
"<template>": "espree",
},
},
plugins: ["eslint-plugin-vue",],
extends: [
"plugin:vue/vue3-essential",
"plugin:vue/recommended",
"eslint:recommended",
"standard-with-typescript",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
],
rules: {
indent: ["warn", 4,],
// "space-in-parens": ["error", "always", { exceptions: ["empty",], },],
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-unused-vars": "warn",
semi: ["error", "always",], // 控制行尾部分号
quotes: ["error", "double",],
"comma-dangle": ["error", {
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},], // 数组和对象键值对最后一个逗号
"comma-style": ["error", "last",], // 逗号在行位
"array-bracket-spacing": ["error", "never",],
"no-undef-init": "error",
"no-invalid-this": "error",
"no-use-before-define": "error",
"no-shadow-restricted-names": "error", // 禁止对一些关键字或者保留字进行赋值操作比如NaN、Infinity、undefined、eval、arguments等
"comma-spacing": ["error", { before: false, after: true, },],
"brace-style": ["error", "allman", { allowSingleLine: true, },],
"prefer-const": "warn",
"space-before-function-paren": ["error", {
anonymous: "always",
named: "never",
asyncArrow: "always",
},],
// vue
"vue/html-indent": ["error", 4,],
// typescript
"@typescript-eslint/indent": ["warn", 4,],
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/no-unused-vars": "warn",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/member-delimiter-style": "off",
"@typescript-eslint/semi": ["error", "always",], // 控制行尾部分号
"@typescript-eslint/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@typescript-eslint/comma-dangle": ["error", {
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},], // 数组和对象键值对最后一个逗号
"@typescript-eslint/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
},
},
{
files: ["*.ts",],
parser: "@typescript-eslint/parser",
parserOptions: {
project: "./tsconfig.json",
},
plugins: ["@typescript-eslint",],
extends: [
"standard-with-typescript",
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
],
rules: {
"space-in-parens": ["error", "always", { exceptions: ["empty",], },],
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
"@typescript-eslint/indent": ["error", 4,],
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/no-unused-vars": "warn",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/member-delimiter-style": "off",
"@typescript-eslint/semi": ["error", "always",], // 控制行尾部分号
"@typescript-eslint/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@typescript-eslint/comma-dangle": ["error", {
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},], // 数组和对象键值对最后一个逗号
"@typescript-eslint/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/strict-boolean-expressions": ["error", {
allowString: false,
},],
"comma-style": ["error", "last",], // 逗号在行位
"array-bracket-spacing": ["error", "never",],
"no-undef-init": "error",
"no-invalid-this": "error",
"no-use-before-define": "error",
"no-shadow-restricted-names": "error", // 禁止对一些关键字或者保留字进行赋值操作比如NaN、Infinity、undefined、eval、arguments等
"prefer-const": "warn",
"spaced-comment": "error",
"space-before-function-paren": "off",
},
},
],
};

View File

@@ -1,44 +0,0 @@
/*
* @Author: Kane
* @Date: 2022-12-14 15:12:46
* @LastEditors: Kane
* @LastEditTime: 2023-02-14 23:10:53
* @FilePath: /IT工具综合平台/.eslintrc.js
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
module.exports = {
root: true,
env: {
node: true,
},
'extends': [
'plugin:vue/vue3-essential',
'eslint:recommended',
],
parserOptions: {
parser: '@babel/eslint-parser',
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
"no-unused-vars": "warn",
"semi": ["error", "always",],//控制行尾部分号
"comma-dangle": ["warn", {
"arrays": "always",
"objects": "always",
"imports": "never",
"exports": "never",
"functions": "never",
},],//数组和对象键值对最后一个逗号
"comma-style": ["error", "last",], //逗号在行位
"array-bracket-spacing": ["error", "never",],
"no-undef-init": "error",
"no-invalid-this": "error",
"no-use-before-define": "error",
"no-shadow-restricted-names": "error", //禁止对一些关键字或者保留字进行赋值操作比如NaN、Infinity、undefined、eval、arguments等
// "comma-spacing": ["error", { "before": false, "after": true, },],
"brace-style": ["error", "allman", { "allowSingleLine": true, },],
},
};

View File

@@ -0,0 +1,2 @@
registry=https://registry.npmjs.org/
proxy=http://127.0.0.1:7890/

View File

@@ -1,5 +1,14 @@
/*
* @Author: Kane
* @Date: 2023-02-23 00:15:23
* @LastEditors: Kane
* @FilePath: /it-console/babel.config.js
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
module.exports = { module.exports = {
presets: [ presets: [
'@vue/cli-plugin-babel/preset' "@vue/cli-plugin-babel/preset",
] ],
} };

20
code/web/it-console/env.d.ts vendored Normal file
View File

@@ -0,0 +1,20 @@
/*
* @Author: Kane
* @Date: 2023-03-03 10:07:00
* @LastEditors: Kane
* @FilePath: /task_schedule/env.d.ts
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
interface ImportMetaEnv
{
readonly VITE_APP_TITLE: string;
readonly VITE_URL_VALIDATE_ACCOUNT: string;
// 更多环境变量...
}
interface ImportMeta
{
readonly env: ImportMetaEnv;
}

File diff suppressed because it is too large Load Diff

View File

@@ -11,43 +11,47 @@
"preview-vite": "vite preview" "preview-vite": "vite preview"
}, },
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^1.1.4", "@element-plus/icons-vue": "^2.1.0",
"@vitejs/plugin-vue": "^4.0.0", "@typescript-eslint/eslint-plugin": "^5.57.1",
"@typescript-eslint/parser": "^5.57.1",
"@vitejs/plugin-vue": "^4.1.0",
"@wangeditor/editor": "^5.1.23", "@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12", "@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^1.2.1", "axios": "^1.3.4",
"core-js": "^3.8.3", "core-js": "^3.30.0",
"element-plus": "^2.2.26", "element-plus": "^2.3.2",
"sass": "^1.56.2", "sass": "^1.60.0",
"scss": "^0.2.4", "scss": "^0.2.4",
"scss-loader": "^0.0.1", "scss-loader": "^0.0.1",
"vite": "^4.1.4", "vue": "^3.2.47",
"vue": "^3.2.13", "vue-router": "^4.1.6",
"vue-router": "^4.0.3", "vuex": "^4.1.0"
"vuex": "^4.0.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.12.16", "@babel/core": "^7.21.4",
"@babel/eslint-parser": "^7.12.16", "@babel/eslint-parser": "^7.21.3",
"@originjs/vite-plugin-commonjs": "^1.0.1", "@originjs/vite-plugin-commonjs": "^1.0.3",
"@originjs/vite-plugin-require-context": "1.0.9", "@originjs/vite-plugin-require-context": "1.0.9",
"@vitejs/plugin-vue": "^2.0.1", "@vitejs/plugin-vue": "^4.1.0",
"@vitejs/plugin-vue-jsx": "^1.3.2", "@vitejs/plugin-vue-jsx": "^3.0.1",
"@vue/cli-plugin-babel": "~5.0.0", "@vue/cli-plugin-babel": "~5.0.8",
"@vue/cli-plugin-eslint": "~5.0.0", "@vue/cli-plugin-eslint": "~5.0.8",
"@vue/cli-plugin-router": "~5.0.0", "@vue/cli-plugin-router": "~5.0.8",
"@vue/cli-plugin-vuex": "~5.0.0", "@vue/cli-plugin-vuex": "~5.0.8",
"@vue/cli-service": "~5.0.0", "@vue/cli-service": "~5.0.8",
"@vue/compiler-sfc": "^3.2.26", "@vue/compiler-sfc": "^3.2.47",
"eslint": "^7.32.0", "eslint": "^8.37.0",
"eslint-plugin-vue": "^8.0.3", "eslint-config-recommended": "^4.1.0",
"eslint-config-standard-with-typescript": "^34.0.1",
"eslint-plugin-vue": "^9.10.0",
"node-sass": "^8.0.0", "node-sass": "^8.0.0",
"sass-loader": "^13.2.0", "sass": "^1.60.0",
"vite": "^2.7.2", "sass-loader": "^13.2.2",
"vite": "^4.2.1",
"vite-plugin-env-compatible": "^1.1.1", "vite-plugin-env-compatible": "^1.1.1",
"vite-plugin-html": "3.2.0", "vite-plugin-html": "3.2.0",
"vue-cli-plugin-element-plus": "~0.0.13", "vue-cli-plugin-element-plus": "~0.0.13",
"webpack": "^5.75.0", "webpack": "^5.77.0",
"webpack-cli": "^5.0.1" "webpack-cli": "^5.0.1"
} }
} }

15
code/web/it-console/shims-vue.d.ts vendored Normal file
View File

@@ -0,0 +1,15 @@
/*
* @Author: Kane
* @Date: 2023-03-04 17:23:02
* @LastEditors: Kane
* @FilePath: /it-console/shims-vue.d.ts
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
declare module "*.vue"
{
import { type ComponentOptions } from "vue";
const componentOptions: ComponentOptions;
export default componentOptions;
}

View File

@@ -2,33 +2,33 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-12-14 15:12:46 * @Date: 2022-12-14 15:12:46
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-15 09:34:25 * @LastEditTime: 2023-03-21 23:49:05
* @FilePath: /IT/src/App.vue * @FilePath: /it-console/src/App.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<template> <template>
<el-config-provider :locale="this.locale"> <el-config-provider :locale="locale">
<router-view></router-view> <router-view />
</el-config-provider> </el-config-provider>
</template> </template>
<script> <script lang="ts">
// 引入语言组件 // 引入语言组件
import zhCn from "element-plus/lib/locale/lang/zh-cn"; import zhCn from "element-plus/lib/locale/lang/zh-cn";
export default { export default {
name: "App", name: "App",
components: {
// HelloWorld,
},
setup() setup()
{ {
const locale = zhCn; const locale = zhCn;
return { locale, }; return { locale, };
}, },
components: {
// HelloWorld,
},
}; };
</script> </script>

View File

@@ -9,19 +9,19 @@
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<template> <template>
svg-icon:{{ this.iconName }} svg-icon:{{ iconName }}
</template> </template>
<script> <script>
export default { export default {
name: "svg-icon", name: "SvgIcon",
props: ["icon",],
data() data()
{ {
return { return {
iconName: "", iconName: "",
}; };
}, },
props: ["icon",],
created() created()
{ {
console.log("svg"); console.log("svg");

View File

@@ -9,12 +9,19 @@
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<template> <template>
<el-container id="layout-container" v-loading="ui.ageVisible" element-loading-text="载入应用数据…"> <el-container
id="layout-container"
v-loading="ui.ageVisible"
element-loading-text="载入应用数据"
>
<el-header id="layout-header"> <el-header id="layout-header">
<LayoutHeader /> <LayoutHeader />
</el-header> </el-header>
<el-container id="layout-container-down"> <el-container id="layout-container-down">
<el-aside :width="asideWidth" id="layout-aside"> <el-aside
id="layout-aside"
:width="asideWidth"
>
<LayoutAside /> <LayoutAside />
</el-aside> </el-aside>
<el-main id="layout-main"> <el-main id="layout-main">
@@ -33,7 +40,12 @@ import { onMounted, computed, reactive } from "vue";
// import { query_requirement_status } from "@/utils/api/requirement/requirement.js"; // import { query_requirement_status } from "@/utils/api/requirement/requirement.js";
export default { export default {
name: "layoutPage", name: "LayoutPage",
components: {
LayoutAside,
LayoutHeader,
LayoutMain,
},
setup() setup()
{ {
const store = useStore(); const store = useStore();
@@ -72,11 +84,6 @@ export default {
asideWidth, asideWidth,
}; };
}, },
components: {
LayoutAside,
LayoutHeader,
LayoutMain,
},
}; };
</script> </script>

View File

@@ -2,39 +2,75 @@
* @Author: Kane * @Author: Kane
* @Date: 2023-01-04 11:30:33 * @Date: 2023-01-04 11:30:33
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-06 09:28:16 * @LastEditTime: 2023-03-27 14:45:35
* @FilePath: /IT/src/layout/components/Aside.vue * @FilePath: /it-console/src/layout/components/Aside.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. 223142 2f4156 * Copyright (c) ${2022} by Kane, All Rights Reserved. 223142 2f4156
--> -->
<template> <template>
<el-scrollbar class="wrapper"> <el-scrollbar class="wrapper">
<el-menu id="side-bar" router :default-active="currentPath" background-color="#2f4156" text-color="#fff" <el-menu
active-text-color="#ffd04b" :collapse="asideCollapse"> id="side-bar"
<template v-for="route in routes" :key="route.path"> router
:default-active="currentPath"
background-color="#2f4156"
text-color="#fff"
active-text-color="#ffd04b"
:collapse="asideCollapse"
>
<template
v-for="route in routes"
>
<template v-if="!route.hidden"> <template v-if="!route.hidden">
<template v-if="hasOnlyChild(route.children)"> <template v-if="hasOnlyChild(route.children)">
<!-- 当只有一个子路由时直接渲染子路由 --> <!-- 当只有一个子路由时直接渲染子路由 -->
<el-menu-item :index="route.children[0].path" class="sidebar-submenu"> <el-menu-item
<component :is="route.children[0].meta.icon" class="icons"> :key="route.path"
</component> :index="route.children[0].path"
class="sidebar-submenu"
>
<component
:is="route.children[0].meta.icon"
class="icons"
/>
<!-- <el-icon v-html="route.children[0].meta && route.children[0].meta.icon"></el-icon> --> <!-- <el-icon v-html="route.children[0].meta && route.children[0].meta.icon"></el-icon> -->
<template #title>{{ route.children[0].meta && route.children[0].meta.title }}</template> <template #title>
{{ route.children[0].meta && route.children[0].meta.title }}
</template>
</el-menu-item> </el-menu-item>
</template> </template>
<template v-else> <template v-else>
<!-- 不是一个子路由时有可能没有子路由或者是多个子路由 --> <!-- 不是一个子路由时有可能没有子路由或者是多个子路由 -->
<el-sub-menu v-if="route.children && route.children.length" :index="route.path" <el-sub-menu
class="sidebar-submenu"> v-if="route.children && route.children.length"
:key="route.path"
:index="route.path"
class="sidebar-submenu"
>
<template #title> <template #title>
<component :is="route.meta.icon" class="icons"></component> <component
:is="route.meta.icon"
class="icons"
/>
<span>{{ route.meta && route.meta.title }}</span> <span>{{ route.meta && route.meta.title }}</span>
</template> </template>
<template v-for="child in route.children" :key="child.path"> <template
<el-menu-item v-if="!child.hidden" :index="child.path" class="sidebar-item"> v-for="child in route.children"
<component :is="child.meta.icon" class="icons"></component> >
<template #title>{{ child.meta && child.meta.title }}</template> <el-menu-item
v-if="!child.hidden"
:key="child.path"
:index="child.path"
class="sidebar-item"
>
<component
:is="child.meta.icon"
class="icons"
/>
<template #title>
{{ child.meta && child.meta.title }}
</template>
</el-menu-item> </el-menu-item>
</template> </template>
</el-sub-menu> </el-sub-menu>
@@ -70,7 +106,7 @@ export default {
// 剔除掉hidden的路由 // 剔除掉hidden的路由
const routes = children.filter((item) => const routes = children.filter((item) =>
{ {
return item.hidden ? false : true; return !item.hidden;
}); });
if (routes.length === 1) if (routes.length === 1)
@@ -85,7 +121,7 @@ export default {
// 获取当前的路由 // 获取当前的路由
const currentPath = computed(() => const currentPath = computed(() =>
{ {
let path = useRoute().path; const path = useRoute().path;
return path; return path;
}); });
@@ -134,10 +170,10 @@ export default {
} }
/* 顺序必须在上面两个之后*/ /* 顺序必须在上面两个之后*/
.is-active { .el-menu-item.is-active {
background-color: #ffffff4f !important; background-color: #ffffff4f !important;
/* font-weight: 1000; */ font-weight: 1000;
/* font-size: 15px; */ font-size: 15px;
color: #ffd04b; color: #ffd04b;
} }

View File

@@ -17,7 +17,10 @@
</div> </div>
<div class="buttons_div"> <div class="buttons_div">
<User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" /> <User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" />
<SwitchButton style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" @click="logout" /> <SwitchButton
style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;"
@click="logout"
/>
</div> </div>
</div> </div>
</template> </template>

View File

@@ -2,8 +2,8 @@
* @Author: Kane * @Author: Kane
* @Date: 2023-01-04 11:39:04 * @Date: 2023-01-04 11:39:04
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-22 18:33:11 * @LastEditTime: 2023-03-21 23:19:06
* @FilePath: /IT/src/layout/components/Header.vue * @FilePath: /it-console/src/layout/components/Header.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
@@ -17,7 +17,10 @@
</div> </div>
<div class="buttons_div"> <div class="buttons_div">
<User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" /> <User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" />
<SwitchButton style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" @click="logout" /> <SwitchButton
style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;"
@click="logout"
/>
</div> </div>
</div> </div>
</template> </template>

View File

@@ -2,8 +2,8 @@
* @Author: Kane * @Author: Kane
* @Date: 2023-01-04 11:40:03 * @Date: 2023-01-04 11:40:03
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-07 10:47:57 * @LastEditTime: 2023-03-21 23:19:27
* @FilePath: /IT/src/layout/components/Main.vue * @FilePath: /it-console/src/layout/components/Main.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.

View File

@@ -2,19 +2,19 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-12-14 15:12:46 * @Date: 2022-12-14 15:12:46
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-17 13:11:43 * @LastEditTime: 2023-03-21 23:48:46
* @FilePath: /IT工具综合平台/src/main.js * @FilePath: /it-console/src/main.js
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
*/ */
import { createApp } from 'vue'; import { createApp } from "vue";
import App from './App.vue'; import App from "./App.vue";
//路由 //路由
import router from './router'; import router from "./router";
//vuex //vuex
import store from './store'; import store from "./store";
//引入全局函数 //引入全局函数
import global from "@/utils/global"; import global from "@/utils/global";
@@ -40,4 +40,4 @@ app.use(ElementPlus);
app.use(store); app.use(store);
app.use(router); app.use(router);
app.use(global); app.use(global);
app.mount('#app'); app.mount("#app");

View File

@@ -2,13 +2,13 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-12-14 15:12:46 * @Date: 2022-12-14 15:12:46
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-21 13:09:15 * @LastEditTime: 2023-03-21 23:20:10
* @FilePath: /IT工具综合平台/src/router/index.js * @FilePath: /it-console/src/router/index.js
* @Description: 定义应用路由配置 * @Description: 定义应用路由配置
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
*/ */
import { createRouter, createWebHashHistory } from 'vue-router'; import { createRouter, createWebHashHistory } from "vue-router";
const routes = [ const routes = [
//框架路由 //框架路由

View File

@@ -8,7 +8,7 @@
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
*/ */
import { createStore } from 'vuex'; import { createStore } from "vuex";
import app from "./modules/app"; import app from "./modules/app";
import requirement from "./modules/requirement"; import requirement from "./modules/requirement";

View File

@@ -10,7 +10,7 @@
*/ */
//常量 //常量
const REQUIREMRNT_UI = `requirement_ui`; const REQUIREMRNT_UI = "requirement_ui";
/** /**
* 从localStorage中读取 REQUIREMRNT_UI 的值,并转换成对象。 * 从localStorage中读取 REQUIREMRNT_UI 的值,并转换成对象。

View File

@@ -18,7 +18,7 @@ import router from "@/router/index";
* @param store 保存在vuex中需求相关的对象 * @param store 保存在vuex中需求相关的对象
* @param {string} error_page_name 提示错误页面的路径 * @param {string} error_page_name 提示错误页面的路径
*****************************************************/ *****************************************************/
function query_requirement_ui(requirement_store, error_page_name) function queryRequirementUI(requirement_store, error_page_name)
{ {
//发送请求 //发送请求
instance.request( instance.request(
@@ -48,4 +48,4 @@ function query_requirement_ui(requirement_store, error_page_name)
}); });
} }
export { query_requirement_ui }; export { queryRequirementUI };

View File

@@ -2,8 +2,8 @@
* @Author: Kane * @Author: Kane
* @Date: 2023-02-04 22:28:13 * @Date: 2023-02-04 22:28:13
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-04 23:36:48 * @LastEditTime: 2023-03-21 23:41:55
* @FilePath: /IT/src/views/ErrorPage.vue * @FilePath: /it-console/src/views/ErrorPage.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
@@ -11,7 +11,7 @@
<template> <template>
<el-scrollbar style="height:100vh;width:100vw;"> <el-scrollbar style="height:100vh;width:100vw;">
<div class="container"> <div class="container">
<img src="../assets/skull.png" /> <img src="../assets/skull.png">
<span>妖秀啊</span> <span>妖秀啊</span>
</div> </div>
</el-scrollbar> </el-scrollbar>
@@ -22,7 +22,7 @@ export default {
name: "ErrorPage", name: "ErrorPage",
setup() setup()
{ {
return {};
}, },
}; };
</script> </script>

View File

@@ -3,8 +3,8 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-12-14 15:23:54 * @Date: 2022-12-14 15:23:54
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-07 10:46:48 * @LastEditTime: 2023-03-27 15:28:21
* @FilePath: /IT/src/views/account/Login.vue * @FilePath: /it-console/src/views/account/Login.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
@@ -13,38 +13,68 @@
<div id="login"> <div id="login">
<div class="form-wrapper"> <div class="form-wrapper">
<ul class="menu-tab"> <ul class="menu-tab">
<li :class="{ 'current': ui.current_menu === item.type }" @click="onToggleMenu(item.type)" <li
v-for="item in tab_menu" :key="item.type">{{ item.label }} v-for="item in tabMenu"
:key="item.type"
:class="{ 'current': ui.current_menu === item.type }"
@click="onToggleMenu(item.type)"
>
{{ item.label }}
</li> </li>
</ul> </ul>
<!-- <el-form ref="form" :model="form"> --> <!-- <el-form ref="form" :model="form"> -->
<el-form ref="form"> <el-form ref="form">
<el-form-item> <el-form-item>
<label class="form-label">用户名</label> <label class="form-label">用户名</label>
<el-input type="text" v-model.lazy.trim="loginForm.username"></el-input> <el-input
v-model.lazy.trim="loginForm.username"
type="text"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<label class="form-label">密码</label> <label class="form-label">密码</label>
<el-input type="password" v-model.lazy.trim="loginForm.password"></el-input> <el-input
v-model.lazy.trim="loginForm.password"
type="password"
/>
</el-form-item> </el-form-item>
<el-form-item v-show="ui.current_menu === tab_menu[1].type"> <el-form-item v-show="ui.current_menu === tabMenu[1].type">
<label class="form-label">确认密码</label> <label class="form-label">确认密码</label>
<el-input type="password" disabled v-model.lazy.trim="loginForm.confirm_password"></el-input> <el-input
v-model.lazy.trim="loginForm.confirm_password"
type="password"
disabled
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<label class="form-label">验证码</label> <label class="form-label">验证码</label>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="14"> <el-col :span="14">
<el-input type="text" disabled></el-input> <el-input
type="text"
disabled
/>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">
<el-button type="danger" disabled class="el-button-block" @click="getValidateCode()">获取验证码</el-button> <el-button
type="danger"
disabled
class="el-button-block"
@click="getValidateCode()"
>
获取验证码
</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" class="el-button-block" @click="login" :disabled="ui.submit_btn_disable" <el-button
:loading="ui.submit_btn_loading"> type="primary"
class="el-button-block"
:disabled="ui.submit_btn_disable"
:loading="ui.submit_btn_loading"
@click="login"
>
{{ ui.current_menu === "login" ? "登录" : "注册" }} {{ ui.current_menu === "login" ? "登录" : "注册" }}
</el-button> </el-button>
</el-form-item> </el-form-item>
@@ -63,7 +93,7 @@ import { ElMessage } from "element-plus";
// import router from "../../router/index"; // import router from "../../router/index";
export default { export default {
name: "loginPage", name: "LoginPage",
setup() setup()
{ {
const store = useStore(); const store = useStore();
@@ -76,7 +106,7 @@ export default {
validateCode: "", validateCode: "",
}); });
const tab_menu = reactive( const tabMenu = reactive(
[ [
{ type: "login", label: "登录", }, { type: "login", label: "登录", },
{ type: "regiester", label: "注册", }, { type: "regiester", label: "注册", },
@@ -93,7 +123,6 @@ export default {
const onToggleMenu = (type) => const onToggleMenu = (type) =>
{ {
ui.current_menu = type; ui.current_menu = type;
console.log(process.env.VUE_APP_API_URL_LOGIN);
}; };
const getValidateCode = () => const getValidateCode = () =>
@@ -167,7 +196,7 @@ export default {
saveUserInfo(data); saveUserInfo(data);
// 验证成功,跳转路由 // 验证成功,跳转路由
router.push("/Desktop"); router.push("/desktop");
} }
else else
{ {
@@ -201,7 +230,7 @@ export default {
onBeforeMount(() => onBeforeMount(() =>
{ {
// 初始化菜单选项 // 初始化菜单选项
ui.current_menu = tab_menu[0].type; ui.current_menu = tabMenu[0].type;
}); });
onMounted(() => onMounted(() =>
@@ -214,7 +243,7 @@ export default {
// 数据 // 数据
ui, ui,
loginForm, loginForm,
tab_menu, tabMenu,
// 方法 // 方法
onToggleMenu, onToggleMenu,
saveUserInfo, saveUserInfo,
@@ -241,24 +270,6 @@ export default {
border-radius: 5px; border-radius: 5px;
} }
/*.menu-tab {
text-align: center;
margin-bottom: 15px;
li {
display: inline-block;
padding: 10px 24px;
margin: 0 10px;
color: #fff;
font-size: 16px;
border-radius: 5px;
cursor: pointer;
&.current {
background-color: rgba(0, 0, 0, 0.1);
}
}
}*/
.menu-tab { .menu-tab {
text-align: center; text-align: center;
margin-bottom: 15px; margin-bottom: 15px;

View File

@@ -11,7 +11,7 @@
* @Author: Kane * @Author: Kane
* @Date: 2023-02-21 11:03:15 * @Date: 2023-02-21 11:03:15
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-24 11:09:40 * @LastEditTime: 2023-03-21 23:22:57
* @FilePath: /it-console/src/views/info/StaffInfo.vue * @FilePath: /it-console/src/views/info/StaffInfo.vue
* @Description:< * @Description:<
* *
@@ -25,19 +25,19 @@
<span>姓名</span> <span>姓名</span>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-input v-model.trim.lazy="query_param.stuffName"></el-input> <el-input v-model.trim.lazy="queryParam.stuffName" />
</el-col> </el-col>
<el-col :span="2"> <el-col :span="2">
<span>工号</span> <span>工号</span>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-input v-model.trim.lazy="query_param.stuffCode"></el-input> <el-input v-model.trim.lazy="queryParam.stuffCode" />
</el-col> </el-col>
<el-col :span="2"> <el-col :span="2">
<span>P13账号</span> <span>P13账号</span>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-input v-model.trim.lazy="query_param.p13UID"></el-input> <el-input v-model.trim.lazy="queryParam.p13UID" />
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10"> <el-row :gutter="10">
@@ -45,18 +45,25 @@
<span>部门</span> <span>部门</span>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-input v-model.trim.lazy="query_param.departmentName"></el-input> <el-input v-model.trim.lazy="queryParam.departmentName" />
</el-col> </el-col>
<el-col :span="2"> <el-col :span="2">
<span>部门代码</span> <span>部门代码</span>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-input v-model.trim.lazy="query_param.departmentCode"></el-input> <el-input v-model.trim.lazy="queryParam.departmentCode" />
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="toolbutton-wrapper"> <div class="toolbutton-wrapper">
<el-button type="primary" icon="search">查询</el-button> <el-button
<el-button icon="Refresh">重置</el-button> type="primary"
icon="search"
>
查询
</el-button>
<el-button icon="Refresh">
重置
</el-button>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@@ -71,7 +78,7 @@ export default {
name: "StuffInfo", name: "StuffInfo",
setup() setup()
{ {
const query_param = reactive( const queryParam = reactive(
{ {
stuffName: "", stuffName: "",
stuffCode: "", stuffCode: "",
@@ -82,7 +89,7 @@ export default {
); );
return { return {
query_param, queryParam,
}; };
}, },
}; };

View File

@@ -8,24 +8,14 @@
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<!--
* @Author: Kane
* @Date: 2023-01-25 11:24:47
* @LastEditors: Kane
* @LastEditTime: 2023-01-25 11:24:48
* @FilePath: \admin_system\src\views\network\NetworkPoint.vue
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
-->
<template> <template>
<div>网络点位信息修改</div> <div>网络点位信息修改</div>
</template> </template>
<script> <script lang="ts">
export default { export default {
name: "network-point-editor", name: "NetworkPointEditor",
data() setup()
{ {
return {}; return {};
}, },

View File

@@ -2,8 +2,8 @@
* @Author: Kane * @Author: Kane
* @Date: 2023-01-25 11:24:47 * @Date: 2023-01-25 11:24:47
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-01-25 11:34:07 * @LastEditTime: 2023-03-21 23:46:21
* @FilePath: \admin_system\src\views\network\NetworkPoint.vue * @FilePath: /it-console/src/views/network/NetworkPoint/NetworkPoint.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
@@ -12,10 +12,10 @@
<div>网络点位管理</div> <div>网络点位管理</div>
</template> </template>
<script> <script lang="ts">
export default { export default {
name: "network-point-management", name: "NetworkPointManagement",
data() setup()
{ {
return {}; return {};
}, },

View File

@@ -9,13 +9,13 @@
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<template> <template>
交换机管理 <div>交换机管理</div>
</template> </template>
<script> <script lang="ts">
export default { export default {
name: "switch-manager", name: "SwitchManager",
data() setup()
{ {
return {}; return {};
}, },

View File

@@ -14,7 +14,7 @@
<script> <script>
export default { export default {
name: "NewsPage" name: "NewsPage",
}; };
</script> </script>

View File

@@ -11,8 +11,13 @@
<template> <template>
信息编辑:{{ getCount }} 信息编辑:{{ getCount }}
<br> <br>
<el-button type="danger" @click="this.add">计数加一</el-button> <el-button
<SvgIcon icon="house"></SvgIcon> type="danger"
@click="add"
>
计数加一
</el-button>
<SvgIcon icon="house" />
</template> </template>
<script> <script>
@@ -32,18 +37,18 @@ export default {
return this.$store.state.app.count; return this.$store.state.app.count;
}, },
}, },
created()
{
this.store = this.$store;
},
methods: { methods: {
add() add()
{ {
let count = this.store.state.app.count + 1; const count = this.store.state.app.count + 1;
this.store.commit("app/SET_COUNT", count); this.store.commit("app/SET_COUNT", count);
}, },
}, },
created()
{
this.store = this.$store;
}
}; };
</script> </script>

View File

@@ -24,7 +24,7 @@
<script> <script>
export default { export default {
name: "NewsPage" name: "NewsPage",
}; };
</script> </script>

View File

@@ -2,89 +2,131 @@
* @Author: Kane * @Author: Kane
* @Date: 2023-01-06 15:30:12 * @Date: 2023-01-06 15:30:12
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-04 22:38:47 * @LastEditTime: 2023-03-21 23:38:49
* @FilePath: /IT/src/views/overview/desktop.vue * @FilePath: /it-console/src/views/overview/Desktop.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<template> <template>
<el-form :inline="true" label-width="5em" class="query_form"> <div class="view_wrapper">
<el-form
:inline="true"
label-width="5em"
class="query_form"
>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="7"> <el-col :span="7">
<el-form-item label="需求编号"> <el-form-item label="需求编号">
<el-input style="width:100%;"></el-input> <el-input style="width:100%;" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="标题"> <el-form-item label="标题">
<el-input style="width:100%;"></el-input> <el-input style="width:100%;" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="提交人"> <el-form-item label="提交人">
<el-input style="width:100%;"></el-input> <el-input style="width:100%;" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3"></el-col> <el-col :span="3" />
</el-row> </el-row>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="7"> <el-col :span="7">
<el-form-item label="状态"> <el-form-item label="状态">
<el-select style="width:100%;"> <el-select style="width:100%;">
<el-option key="部门审批" value="部门审批"></el-option> <el-option
<el-option key="需求分析" value="需求分析">需求分析</el-option> key="部门审批"
<el-option key="技术开发" value="技术开发">技术开发</el-option> value="部门审批"
<el-option key="被退回" value="被退回"></el-option> />
<el-option
key="需求分析"
value="需求分析"
>
需求分析
</el-option>
<el-option
key="技术开发"
value="技术开发"
>
技术开发
</el-option>
<el-option
key="被退回"
value="被退回"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="提交日期"> <el-form-item label="提交日期">
<el-date-picker style="width:100%;" v-model="start_date"></el-date-picker> <el-date-picker
v-model="startDate"
style="width:100%;"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="至"> <el-form-item label="至">
<el-date-picker style="width:100%;" v-model="end_date"></el-date-picker> <el-date-picker
v-model="endDate"
style="width:100%;"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3"></el-col> <el-col :span="3" />
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="14"> <el-col :span="14">
<el-form-item label="提交日期"> <el-form-item label="提交日期">
<el-date-picker type="daterange" range-separator="" style="width:100%;"></el-date-picker> <el-date-picker
type="daterange"
range-separator=""
style="width:100%;"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10"></el-col> <el-col :span="10" />
</el-row> </el-row>
</el-form> </el-form>
<el-button type="danger" @click="testRequest">测试</el-button> <el-button
<el-button type="danger" @click="testError">错误</el-button> type="danger"
@click="testRequest"
>
测试
</el-button>
<el-button
type="danger"
@click="testError"
>
错误
</el-button>
</div>
</template> </template>
<script> <script>
import { reactive, onBeforeMount } from "vue"; import { reactive, onBeforeMount } from "vue";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { query_requirement_ui } from "@/utils/api/requirement/requirement.js"; import { queryRequirementUI } from "@/utils/api/requirement/requirement.js";
export default { export default {
name: "DeskTop", name: "DeskTop",
setup() setup()
{ {
let start_date = reactive(new Date()); let startDate = reactive(new Date());
let end_date = reactive(new Date()); let endDate = reactive(new Date());
const router = useRouter(); const router = useRouter();
const store = useStore(); const store = useStore();
onBeforeMount(() => onBeforeMount(() =>
{ {
end_date = new Date(Date.now()); endDate = new Date(Date.now());
start_date = new Date(); startDate = new Date();
start_date.setMonth(end_date.getMonth() - 1); startDate.setMonth(endDate.getMonth() - 1);
}); });
const testRequest = () => const testRequest = () =>
@@ -92,7 +134,7 @@ export default {
// const ui = store.state.app.ui; // const ui = store.state.app.ui;
// const requirement = store.state.requirement; // const requirement = store.state.requirement;
// 加载数据; // 加载数据;
query_requirement_ui(store); queryRequirementUI(store);
console.log(store.state.app); console.log(store.state.app);
console.log(store.state.requirement); console.log(store.state.requirement);
@@ -104,8 +146,8 @@ export default {
}; };
return { return {
start_date, startDate,
end_date, endDate,
testRequest, testRequest,
testError, testError,
}; };

View File

@@ -9,7 +9,7 @@
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<template> <template>
<div></div> <div />
</template> </template>
<script> <script>

View File

@@ -2,14 +2,14 @@
* @Author: Kane * @Author: Kane
* @Date: 2023-02-03 18:54:38 * @Date: 2023-02-03 18:54:38
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-02-03 18:56:39 * @LastEditTime: 2023-03-21 23:45:04
* @FilePath: \IT工具综合平台\src\views\privilege\PrivilegeManager.vue * @FilePath: /it-console/src/views/privilege/PrivilegeManager.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<template> <template>
权限管理 <div>权限管理</div>
</template> </template>
<script> <script>

View File

@@ -3,59 +3,116 @@
* @Author: Kane * @Author: Kane
* @Date: 2023-01-12 14:43:46 * @Date: 2023-01-12 14:43:46
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2023-01-26 23:18:49 * @LastEditTime: 2023-03-21 23:41:05
* @FilePath: \admin_system\src\views\info\StaffInfo.vue * @FilePath: /it-console/src/views/privilege/StaffInfo.vue
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<template> <template>
<div class="query_box"> <div class="query_box">
<el-form inline width="600px"> <el-form
<el-row :gutter="10" class="el-row"> inline
width="600px"
>
<el-row
:gutter="10"
class="el-row"
>
<el-col :span="8"> <el-col :span="8">
<el-input v-model="query_param.staff_code" placeholder="请输入P09工号或P13账号"></el-input> <el-input
v-model="query_param.staff_code"
placeholder="请输入P09工号或P13账号"
/>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-button type="danger">查询</el-button> <el-button type="danger">
查询
</el-button>
</el-col> </el-col>
<el-col :span="12"></el-col> <el-col :span="12" />
</el-row> </el-row>
</el-form> </el-form>
<el-table ref="table" :data="table_data" border width="100%" stripe> <el-table
<el-table-column type="selection" min-width="30" align="center"></el-table-column> ref="table"
<el-table-column min-width="200" label="员工名称" align="left" fixed="left"> :data="table_data"
border
width="100%"
stripe
>
<el-table-column
type="selection"
min-width="30"
align="center"
/>
<el-table-column
min-width="200"
label="员工名称"
align="left"
fixed="left"
>
<template #default="rowdata"> <template #default="rowdata">
<span @click="onShowStaffInfo(rowdata.row)" style="cursor: pointer; display: block; height: 100%">{{ <span
style="cursor: pointer; display: block; height: 100%"
@click="onShowStaffInfo(rowdata.row)"
>{{
rowdata.row.staff_name rowdata.row.staff_name
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="staff_code" min-width="100" label="工号" align="left"></el-table-column> <el-table-column
<el-table-column prop="p13uid" min-width="200" label="P13账号" align="left"></el-table-column> prop="staff_code"
<el-table-column label="操作" min-width="200" align="center" fixed="right"> min-width="100"
label="工号"
align="left"
/>
<el-table-column
prop="p13uid"
min-width="200"
label="P13账号"
align="left"
/>
<el-table-column
label="操作"
min-width="200"
align="center"
fixed="right"
>
<template #default> <template #default>
<el-button type="warning">编辑</el-button> <el-button type="warning">
<el-button type="danger">删除</el-button> 编辑
</el-button>
<el-button type="danger">
删除
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-row :gutter="10" width="100%"> <el-row
:gutter="10"
width="100%"
>
<el-col :span="18"> <el-col :span="18">
<el-pagination class="pull_left" @current-change="onCurrentPageIndexChange" <el-pagination
@size-change="onTablePageSizeChange" size="small" background :current-page="this.table_current_page" class="pull_left"
:page-size="10" :page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, nex, jumper" size="small"
:total="table_data.length"> background
</el-pagination> :current-page="table_current_page"
:page-size="10"
:page-sizes="[10, 20, 50, 100]"
layout="total, sizes, prev, pager, nex, jumper"
:total="table_data.length"
@current-change="onCurrentPageIndexChange"
@size-change="onTablePageSizeChange"
/>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable no-unused-vars*/
export default { export default {
name: "staff-info", name: "StaffInfo",
data() data()
{ {
return { return {
@@ -93,7 +150,7 @@ export default {
}; };
}, },
methods: { methods: {
onTableEdit(row) { }, // onTableEdit(row) { },
/** /**
* 根据表格行index返回样式实现斑马纹 * 根据表格行index返回样式实现斑马纹
* @param row * @param row
@@ -102,8 +159,8 @@ export default {
*/ */
tabRowClassName(row, rowIndex) tabRowClassName(row, rowIndex)
{ {
let index = rowIndex + 1; const index = rowIndex + 1;
if (index % 2 == 0) if (index % 2 === 0)
{ {
return "warning-row"; return "warning-row";
} }
@@ -119,11 +176,11 @@ export default {
/** /**
* 表格页显示数量变更时消息处理函数 * 表格页显示数量变更时消息处理函数
*/ */
onTablePageSizeChange() { }, // onTablePageSizeChange() { },
/** /**
* 用户变更当前页时消息处理函数 * 用户变更当前页时消息处理函数
*/ */
onCurrentPageIndexChange() { }, // onCurrentPageIndexChange() { },
}, },
}; };
</script> </script>

View File

@@ -9,15 +9,15 @@
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
--> -->
<template> <template>
需求编辑页面 <div>需求编辑页面</div>
</template> </template>
<script> <script>
import { onBeforeMount, onBeforeUpdate } from 'vue'; import { onBeforeMount, onBeforeUpdate } from "vue";
import { useRoute } from 'vue-router'; import { useRoute } from "vue-router";
export default { export default {
name: "requirement-editing", name: "RequirementEditing",
setup() setup()
{ {
const route = useRoute(); const route = useRoute();

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,47 @@
/*
* @Author: Kane
* @Date: 2023-03-01 23:38:12
* @LastEditors: Kane
* @FilePath: /task_schedule/tsconfig.json
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
{
"compilerOptions": {
"forceConsistentCasingInFileNames": true,
"useDefineForClassFields": true,
"target": "ESNext",
"module": "CommonJS",
"moduleResolution": "node",
"strict": true,
"jsx": "preserve",
"sourceMap": true,
"resolveJsonModule": true,
"esModuleInterop": false,
"baseUrl": "./", // paths 路径解析起点
"paths": { // 别名路径设置
"@/*": [
"src/*"
],
},
"lib": [
"ESNext",
"DOM"
],
"types": [
"vite/client"
]
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"*.d.ts",
"src/router/index.js",
"src/router/index.js",
],
"exclude": [
"./node_modules",
]
}

View File

@@ -8,14 +8,14 @@
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
*/ */
import { defineConfig } from 'vite'; import { defineConfig } from "vite";
import path from 'path'; import path from "path";
import vue from '@vitejs/plugin-vue'; import vue from "@vitejs/plugin-vue";
import vueJsx from '@vitejs/plugin-vue-jsx'; import vueJsx from "@vitejs/plugin-vue-jsx";
import ViteRequireContext from '@originjs/vite-plugin-require-context'; import ViteRequireContext from "@originjs/vite-plugin-require-context";
import envCompatible from 'vite-plugin-env-compatible'; import envCompatible from "vite-plugin-env-compatible";
import { createHtmlPlugin } from 'vite-plugin-html'; import { createHtmlPlugin } from "vite-plugin-html";
import { viteCommonjs } from '@originjs/vite-plugin-commonjs'; import { viteCommonjs } from "@originjs/vite-plugin-commonjs";
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
@@ -23,21 +23,21 @@ export default defineConfig({
alias: [ alias: [
{ {
find: /^~/, find: /^~/,
replacement: '', replacement: "",
}, },
{ {
find: '@', find: "@",
replacement: path.resolve(__dirname, 'src'), replacement: path.resolve(__dirname, "src"),
}, },
], ],
extensions: [ extensions: [
'.mjs', ".mjs",
'.js', ".js",
'.ts', ".ts",
'.jsx', ".jsx",
'.tsx', ".tsx",
'.json', ".json",
'.vue', ".vue",
], ],
}, },
plugins: [ plugins: [
@@ -49,19 +49,19 @@ export default defineConfig({
createHtmlPlugin({ createHtmlPlugin({
inject: { inject: {
data: { data: {
title: 'CPIC-IT-Console', title: "CPIC-IT-Console",
}, },
}, },
}), }),
], ],
base: './', base: "./",
server: { server: {
strictPort: false, strictPort: false,
port: 8001, port: 8001,
host: 'localhost', host: "localhost",
open: true, open: true,
}, },
build: { build: {
outDir: 'dist', outDir: "dist",
}, },
}); });