Compare commits
	
		
			70 Commits
		
	
	
		
			5f204c2b92
			...
			feature-re
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 280636bd14 | |||
| 679c12fb92 | |||
| e3ada43d48 | |||
| 1a1e230ead | |||
| 8b0f8e618b | |||
| a0f23c3a4c | |||
| 0bf3ae2520 | |||
| 0c9df7d70d | |||
| 57dc7568b1 | |||
| 968eaed581 | |||
| 304acb5c6c | |||
| 64b59e02ae | |||
| 9e25df4b6c | |||
| ebf4a37529 | |||
| ba44c9bc31 | |||
| cdc7efce15 | |||
| bf19c775cf | |||
| 011a3f58e6 | |||
| c814278905 | |||
| 580bffc207 | |||
| 702912ef00 | |||
| 12ce6403dd | |||
| 6a93923edd | |||
| 9460316a69 | |||
| 6d6ce6025b | |||
| f24a47f27d | |||
| a7ff72c4b7 | |||
| f380cbd812 | |||
| c25f8a2401 | |||
| 178ae16c73 | |||
| 3afde75e85 | |||
| 7154edde7c | |||
| f22f6b268a | |||
| 1c44e56b56 | |||
| 3f93afede3 | |||
| 8dd5f27d47 | |||
| 557452aedc | |||
| 46cfdc28a6 | |||
| e450e280d4 | |||
| 8248fe942a | |||
| a97d222486 | |||
| f354d141f5 | |||
| 8902b2761b | |||
| 81d52412db | |||
| 9afe66b769 | |||
| c2bc64fd36 | |||
| e7e8ec49e2 | |||
| 05e131ecbe | |||
| 55cf233192 | |||
| 5822212970 | |||
| e685197674 | |||
| a81bdc330c | |||
| 8315b1f9b2 | |||
| 007953d129 | |||
| f2802722c1 | |||
| 655af8eec1 | |||
| 5c0050fe13 | |||
| c28c4c7789 | |||
| 608b1d1b41 | |||
| 12674fa58f | |||
| db0ac8c960 | |||
| 946cf852d2 | |||
| f4769057db | |||
| 33195638ca | |||
| 44acd8856a | |||
| 2d9178e4ae | |||
| e142a2a624 | |||
| a5fa62c5d0 | |||
| 8e5dc6e617 | |||
| 365815735e | 
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -77,7 +77,8 @@ bower_components
 | 
				
			|||||||
build/Release
 | 
					build/Release
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependency directories
 | 
					# Dependency directories
 | 
				
			||||||
node_modules/
 | 
					node_modules*/
 | 
				
			||||||
 | 
					node_modules_bak/
 | 
				
			||||||
jspm_packages/
 | 
					jspm_packages/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Snowpack dependency directory (https://snowpack.dev/)
 | 
					# Snowpack dependency directory (https://snowpack.dev/)
 | 
				
			||||||
@@ -722,3 +723,5 @@ local.properties
 | 
				
			|||||||
# Typically, this file would be tracked if it contains build/dependency configurations:
 | 
					# Typically, this file would be tracked if it contains build/dependency configurations:
 | 
				
			||||||
#.project
 | 
					#.project
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					target
 | 
				
			||||||
 | 
					target/*
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -73,7 +73,7 @@
 | 
				
			|||||||
    <dependency>
 | 
					    <dependency>
 | 
				
			||||||
      <groupId>commons-fileupload</groupId>
 | 
					      <groupId>commons-fileupload</groupId>
 | 
				
			||||||
      <artifactId>commons-fileupload</artifactId>
 | 
					      <artifactId>commons-fileupload</artifactId>
 | 
				
			||||||
      <version>1.4</version>
 | 
					      <version>1.5</version>
 | 
				
			||||||
    </dependency>
 | 
					    </dependency>
 | 
				
			||||||
    <!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
 | 
					    <!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
 | 
				
			||||||
    <dependency>
 | 
					    <dependency>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,8 +2,8 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2022-12-15 14:08:28
 | 
					 * @Date: 2022-12-15 14:08:28
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2022-12-16 17:57:06
 | 
					 * @LastEditTime: 2023-02-28 23:20:12
 | 
				
			||||||
 * @FilePath: \AdminSys\src\main\java\com\cpic\xim\myutils\account\CpicXIMStaffInfo.java
 | 
					 * @FilePath: /后端-用户验证/src/main/java/com/cpic/xim/myutils/account/CpicXIMStaffInfo.java
 | 
				
			||||||
 * @Description: 产险厦门分公司员工信息对象
 | 
					 * @Description: 产险厦门分公司员工信息对象
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,9 +2,9 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2022-12-15 09:51:12
 | 
					 * @Date: 2022-12-15 09:51:12
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2022-12-16 15:29:34
 | 
					 * @LastEditTime: 2023-03-06 15:05:03
 | 
				
			||||||
 * @FilePath: \AdminSys\src\main\java\com\cpic\xim\myutils\account\LdapAccountCheck.java
 | 
					 * @FilePath: /ts-practiced:/develop/cpicxim/it-console/code/java/后端-用户验证/src/main/java/com/cpic/xim/myutils/account/LdapAccountCheck.java
 | 
				
			||||||
 * @Description: P13验证相关方法。
 | 
					 * @Description: LDAP验证相关方法。
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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("密码错误!");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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>
 | 
					 | 
				
			||||||
@@ -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>
 | 
					 | 
				
			||||||
@@ -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;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -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;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -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;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,11 +0,0 @@
 | 
				
			|||||||
.panel {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.main_form {
 | 
					 | 
				
			||||||
    height: 50vh;
 | 
					 | 
				
			||||||
    width: 50vw;
 | 
					 | 
				
			||||||
    border: 1px solid red;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -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;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -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>
 | 
					 | 
				
			||||||
@@ -1,4 +0,0 @@
 | 
				
			|||||||
#Created by Apache Maven 3.8.6
 | 
					 | 
				
			||||||
artifactId=admin-system
 | 
					 | 
				
			||||||
groupId=com.cpic.xim
 | 
					 | 
				
			||||||
version=1.0-SNAPSHOT
 | 
					 | 
				
			||||||
@@ -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
 | 
					 | 
				
			||||||
@@ -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
 | 
					 | 
				
			||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2023-02-04 11:38:32
 | 
					 * @Date: 2023-02-04 11:38:32
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2023-02-04 14:17:26
 | 
					 * @LastEditTime: 2023-02-17 10:52:40
 | 
				
			||||||
 * @FilePath: /后端-需求/src/main/java/com/cpic/xim/utils/db/RequirementDbOperation.java
 | 
					 * @FilePath: /后端-需求/src/main/java/com/cpic/xim/utils/db/RequirementDbOperation.java
 | 
				
			||||||
 * @Description: 
 | 
					 * @Description: 
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
@@ -20,7 +20,7 @@ import com.cpic.xim.data.RequirementStatus;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public final class RequirementDbOperation
 | 
					public final class RequirementDbOperation
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private static final String MYSQL_JDBC_CONNECT = "jdbc:mysql://192.168.1.14:3306";
 | 
					    private static final String MYSQL_JDBC_CONNECT = "jdbc:mysql://10.39.0.85:3306";
 | 
				
			||||||
    private static final String MYSQL_CLASS_DRIVER = "com.mysql.cj.jdbc.Driver";
 | 
					    private static final String MYSQL_CLASS_DRIVER = "com.mysql.cj.jdbc.Driver";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /*****************************************************
 | 
					    /*****************************************************
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								code/ts/pako/.eslintignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					node_modules
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
 | 
					target
 | 
				
			||||||
 | 
					tsconfig.json
 | 
				
			||||||
							
								
								
									
										60
									
								
								code/ts/pako/.eslintrc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,60 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-09 15:26:18
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-10 10:25:42
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/.eslintrc.js
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					    root: true,
 | 
				
			||||||
 | 
					    env: {
 | 
				
			||||||
 | 
					        browser: true,
 | 
				
			||||||
 | 
					        es2021: true,
 | 
				
			||||||
 | 
					        node: true,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    parser: "@typescript-eslint/parser",
 | 
				
			||||||
 | 
					    parserOptions: {
 | 
				
			||||||
 | 
					        ecmaVersion: "latest",
 | 
				
			||||||
 | 
					        sourceType: "module",
 | 
				
			||||||
 | 
					        // project: ["./tsconfig.json",],
 | 
				
			||||||
 | 
					        tsconfigRootDir: __dirname,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    plugins: [
 | 
				
			||||||
 | 
					        "@typescript-eslint",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    extends: [
 | 
				
			||||||
 | 
					        // "standard-with-typescript",
 | 
				
			||||||
 | 
					        "eslint:recommended",
 | 
				
			||||||
 | 
					        "plugin:@typescript-eslint/eslint-recommended",
 | 
				
			||||||
 | 
					        "plugin:@typescript-eslint/recommended",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    rules: {
 | 
				
			||||||
 | 
					        "no-console": "warn",
 | 
				
			||||||
 | 
					        "quote-props": ["warn", "as-needed",],
 | 
				
			||||||
 | 
					        quotes: ["warn", "double", { allowTemplateLiterals: true, },],
 | 
				
			||||||
 | 
					        indent: ["warn", 4,],
 | 
				
			||||||
 | 
					        "no-unused-vars": "off",
 | 
				
			||||||
 | 
					        semi: ["error", "always",], // 控制行尾部分号
 | 
				
			||||||
 | 
					        "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",
 | 
				
			||||||
 | 
					        "@typescript-eslint/no-extra-semi": "off",
 | 
				
			||||||
 | 
					        "@typescript-eslint/no-inferrable-types": "off",
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										21
									
								
								code/ts/pako/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "name": "pako",
 | 
				
			||||||
 | 
					    "version": "1.0.0",
 | 
				
			||||||
 | 
					    "lockfileVersion": 3,
 | 
				
			||||||
 | 
					    "requires": true,
 | 
				
			||||||
 | 
					    "packages": {
 | 
				
			||||||
 | 
					        "": {
 | 
				
			||||||
 | 
					            "name": "pako",
 | 
				
			||||||
 | 
					            "version": "1.0.0",
 | 
				
			||||||
 | 
					            "license": "ISC",
 | 
				
			||||||
 | 
					            "dependencies": {
 | 
				
			||||||
 | 
					                "pako": "^2.1.0"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "node_modules/pako": {
 | 
				
			||||||
 | 
					            "version": "2.1.0",
 | 
				
			||||||
 | 
					            "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
 | 
				
			||||||
 | 
					            "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										19
									
								
								code/ts/pako/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "name": "pako",
 | 
				
			||||||
 | 
					    "version": "1.0.0",
 | 
				
			||||||
 | 
					    "description": "",
 | 
				
			||||||
 | 
					    "main": "index.js",
 | 
				
			||||||
 | 
					    "scripts": {
 | 
				
			||||||
 | 
					        "test": "node index.js"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "keywords": [
 | 
				
			||||||
 | 
					        "pako"
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "type": "module",
 | 
				
			||||||
 | 
					    "author": "Kane",
 | 
				
			||||||
 | 
					    "license": "ISC",
 | 
				
			||||||
 | 
					    "dependencies": {
 | 
				
			||||||
 | 
					        "pako": "^2.1.0"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										22
									
								
								code/ts/pako/src/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										37
									
								
								code/ts/pako/src/utils/StringConverter.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-13 14:54:46
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-13 14:55:19
 | 
				
			||||||
 | 
					 * @FilePath: /pako/src/utils/StringConverter.js
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function Uint8ArrayToString(fileData)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    var dataString = "";
 | 
				
			||||||
 | 
					    for (var i = 0; i < fileData.length; i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        dataString += String.fromCharCode(fileData[i]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return dataString;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function stringToUint8Array(str)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    var arr = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (var i = 0, j = str.length; i < j; ++i)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        arr.push(str.charCodeAt(i));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var tmpUint8Array = new Uint8Array(arr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return tmpUint8Array;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export { Uint8ArrayToString, stringToUint8Array };
 | 
				
			||||||
							
								
								
									
										4
									
								
								code/ts/后端辅助工具/.eslintignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					node_modules
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
 | 
					target
 | 
				
			||||||
 | 
					tsconfig.json
 | 
				
			||||||
							
								
								
									
										61
									
								
								code/ts/后端辅助工具/.eslintrc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,61 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-09 15:26:18
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-18 23:36:07
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/.eslintrc.js
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					    root: true,
 | 
				
			||||||
 | 
					    env: {
 | 
				
			||||||
 | 
					        browser: true,
 | 
				
			||||||
 | 
					        es2021: true,
 | 
				
			||||||
 | 
					        node: true,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    parser: "@typescript-eslint/parser",
 | 
				
			||||||
 | 
					    parserOptions: {
 | 
				
			||||||
 | 
					        ecmaVersion: "latest",
 | 
				
			||||||
 | 
					        sourceType: "module",
 | 
				
			||||||
 | 
					        // project: ["./tsconfig.json",],
 | 
				
			||||||
 | 
					        tsconfigRootDir: __dirname,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    plugins: [
 | 
				
			||||||
 | 
					        "@typescript-eslint",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    extends: [
 | 
				
			||||||
 | 
					        // "standard-with-typescript",
 | 
				
			||||||
 | 
					        "eslint:recommended",
 | 
				
			||||||
 | 
					        "plugin:@typescript-eslint/eslint-recommended",
 | 
				
			||||||
 | 
					        "plugin:@typescript-eslint/recommended",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    rules: {
 | 
				
			||||||
 | 
					        "no-console": "off",
 | 
				
			||||||
 | 
					        "quote-props": ["warn", "as-needed",],
 | 
				
			||||||
 | 
					        quotes: ["warn", "double", { allowTemplateLiterals: true, },],
 | 
				
			||||||
 | 
					        indent: ["warn", 4,],
 | 
				
			||||||
 | 
					        "no-unused-vars": "off",
 | 
				
			||||||
 | 
					        semi: ["error", "always",], // 控制行尾部分号
 | 
				
			||||||
 | 
					        "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",
 | 
				
			||||||
 | 
					        "@typescript-eslint/no-extra-semi": "off",
 | 
				
			||||||
 | 
					        "@typescript-eslint/no-inferrable-types": "off",
 | 
				
			||||||
 | 
					        "@typescript-eslint/no-unused-vars": "off",
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										20
									
								
								code/ts/后端辅助工具/.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    // 使用 IntelliSense 了解相关属性。 
 | 
				
			||||||
 | 
					    // 悬停以查看现有属性的描述。
 | 
				
			||||||
 | 
					    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
 | 
				
			||||||
 | 
					    "version": "0.2.0",
 | 
				
			||||||
 | 
					    "configurations": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "type": "pwa-node",
 | 
				
			||||||
 | 
					            "request": "launch",
 | 
				
			||||||
 | 
					            "name": "Launch Program",
 | 
				
			||||||
 | 
					            "skipFiles": [
 | 
				
			||||||
 | 
					                "<node_internals>/**"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "program": "${file}",
 | 
				
			||||||
 | 
					            "outFiles": [
 | 
				
			||||||
 | 
					                "${workspaceFolder}/**/*.js"
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										3
									
								
								code/ts/后端辅助工具/.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "typescript.tsdk": "node_modules/typescript/lib"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										14
									
								
								code/ts/后端辅助工具/.vscode/tasks.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
						"version": "2.0.0",
 | 
				
			||||||
 | 
						"tasks": [
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"type": "typescript",
 | 
				
			||||||
 | 
								"tsconfig": "tsconfig.json",
 | 
				
			||||||
 | 
								"problemMatcher": [
 | 
				
			||||||
 | 
									"$tsc"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"group": "build",
 | 
				
			||||||
 | 
								"label": "tsc: build - tsconfig.json"
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2740
									
								
								code/ts/后端辅助工具/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										15
									
								
								code/ts/后端辅助工具/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@typescript-eslint/eslint-plugin": "^5.51.0",
 | 
				
			||||||
 | 
					    "@typescript-eslint/parser": "^5.51.0",
 | 
				
			||||||
 | 
					    "eslint": "^8.33.0",
 | 
				
			||||||
 | 
					    "ts-loader": "^9.4.2",
 | 
				
			||||||
 | 
					    "webpack": "^5.75.0",
 | 
				
			||||||
 | 
					    "webpack-cli": "^5.0.1"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "axios": "^1.3.2",
 | 
				
			||||||
 | 
					    "pako": "^2.1.0",
 | 
				
			||||||
 | 
					    "ts-node": "^10.9.1"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										41
									
								
								code/ts/后端辅助工具/src/DataType/Class.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-17 22:35:49
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-19 21:38:18
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/src/DataType/Class.ts
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class CpicximStuff
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    constructor(
 | 
				
			||||||
 | 
					        private _stuffName: string,
 | 
				
			||||||
 | 
					        private _stuffCode: string,
 | 
				
			||||||
 | 
					        private _p13UID: string
 | 
				
			||||||
 | 
					    ) { }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    get stuffName(): string 
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return this._stuffName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    set stuffName(stuffName: string)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this._stuffName = stuffName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    get stuffCode(): string
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return this._stuffCode;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    set stuffCode(code: string)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this._stuffCode = code;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export { CpicximStuff };
 | 
				
			||||||
							
								
								
									
										73
									
								
								code/ts/后端辅助工具/src/DataType/DataType.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,73 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-10 15:08:53
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-13 10:04:33
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/src/DataType/DataType.ts
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					/*eslint no-unused-vars: "off" */
 | 
				
			||||||
 | 
					/*eslint @typescript-eslint/no-unused-vars: "off" */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Tuple
 | 
				
			||||||
 | 
					function dataTypes()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    const tu: readonly [number, number, number] = [1, 1, 2,];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const toArray: [number, number, string] = [1, 2, "3",];
 | 
				
			||||||
 | 
					    const v1: (number | string)[] = toArray;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const s1 = "string";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    console.log(typeof s1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let point: {
 | 
				
			||||||
 | 
					        x: number,
 | 
				
			||||||
 | 
					        y: number,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    point = { x: 0, y: 0, };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function addOne(x: number, y: number = 1): number
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return x + y;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    console.log(addOne(1));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function allParams(x: number, y: number): void 
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        const z = x + y;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //剩余参数,数组形式
 | 
				
			||||||
 | 
					    function overplusArgusWithArray(x: number, ...argus: number[]): number
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return argus.length;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function overplusArugsWithTuple(x: number, ...argus: [number, number, string]): number
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        console.log(`元组形式的参数表${argus},剩余参数的数量${argus.length}。`);
 | 
				
			||||||
 | 
					        console.log(argus[2]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return argus.length;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    overplusArugsWithTuple(1, 2, 3, "test");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    console.log(overplusArgusWithArray(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //测试null
 | 
				
			||||||
 | 
					    const nulltest: null = null;
 | 
				
			||||||
 | 
					    let var_2: { x: string; } = { x: "test", };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // var_2 = null;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default dataTypes;
 | 
				
			||||||
							
								
								
									
										30
									
								
								code/ts/后端辅助工具/src/DataType/Function.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-13 23:08:34
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-16 22:43:22
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/src/DataType/Function.ts
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function f(x: number, y: number): number 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return x + y;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					f.version = "1.0.0";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const func: {
 | 
				
			||||||
 | 
					    (x: number, y: number): void,
 | 
				
			||||||
 | 
					    version: string,
 | 
				
			||||||
 | 
					} = f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function func_this_void(this: void, arg1: number): number
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return arg1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let constructor: {
 | 
				
			||||||
 | 
					    new(x: string, y: string): object;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										24
									
								
								code/ts/后端辅助工具/src/DataType/Interface.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-14 22:24:26
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-21 23:31:40
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/src/DataType/Interface.ts
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface document
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    getElementById(id: string): HTMLElement | null;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface CpicStuff
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    stuffName: string;
 | 
				
			||||||
 | 
					    stuffCode: string;
 | 
				
			||||||
 | 
					    p13uid: string;
 | 
				
			||||||
 | 
					    password: string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										24
									
								
								code/ts/后端辅助工具/src/DataType/Template.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-21 17:39:01
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-22 14:08:48
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/src/DataType/Template.ts
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface Point
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    x: number;
 | 
				
			||||||
 | 
					    y: number;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function radius<TPoint>(x: TPoint): TPoint
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    const result: TPoint = x;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return result;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										11
									
								
								code/ts/后端辅助工具/src/axios/AxiosTest.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-13 15:46:17
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-13 23:34:55
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/src/axios/AxiosTest.ts
 | 
				
			||||||
 | 
					 * @Description:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					import axios from "axios";
 | 
				
			||||||
							
								
								
									
										19
									
								
								code/ts/后端辅助工具/src/axios/request.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-13 15:53:45
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-13 22:41:50
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/src/axios/request.ts
 | 
				
			||||||
 | 
					 * @Description:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					import axios, {AxiosInstance, AxiosRequestConfig, AxiosResponse} from 'axios';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// const service = axios.create({
 | 
				
			||||||
 | 
					//     baseURL: "",
 | 
				
			||||||
 | 
					//     timeout: 10000,
 | 
				
			||||||
 | 
					//     timeoutErrorMessage: "请求超时!",
 | 
				
			||||||
 | 
					// });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								code/ts/后端辅助工具/src/gzip/PakoTest.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										21
									
								
								code/ts/后端辅助工具/src/main.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-09 22:14:30
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-21 23:32:00
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/src/main.ts
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import dataTypes from "./DataType/DataType";
 | 
				
			||||||
 | 
					import { pakoTest } from "./gzip/PakoTest";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const greetings = "hello, this is kane's typescript!";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					console.log(greetings);
 | 
				
			||||||
 | 
					console.log("all");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//dataTypes();
 | 
				
			||||||
 | 
					pakoTest();
 | 
				
			||||||
							
								
								
									
										38
									
								
								code/ts/后端辅助工具/src/utils/StringConvert.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-13 14:54:46
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-13 14:55:19
 | 
				
			||||||
 | 
					 * @FilePath: /pako/src/utils/StringConverter.js
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function Uint8ArrayToString(fileData: Uint8Array): string
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    let dataString: string = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (let i = 0; i < fileData.length; i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        dataString += String.fromCharCode(fileData[i]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return dataString;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function stringToUint8Array(str: string): Uint8Array
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    const arr: number[] = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (let i = 0, j = str.length; i < j; ++i)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        arr.push(str.charCodeAt(i));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const tmpUint8Array: Uint8Array = new Uint8Array(arr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return tmpUint8Array;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export { Uint8ArrayToString, stringToUint8Array };
 | 
				
			||||||
							
								
								
									
										77
									
								
								code/ts/后端辅助工具/src/utils/url.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,77 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-28 19:30:40
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/src/utils/url.ts
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 将url的参数拆分成对象
 | 
				
			||||||
 | 
					 * @param url 访问的url
 | 
				
			||||||
 | 
					 * @returns 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function getURLParams(url: string)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    const arr = url.split("?");
 | 
				
			||||||
 | 
					    const params = arr[1].split("&");
 | 
				
			||||||
 | 
					    const obj = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (let i = 0; i < params.length; i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        const param = params[i].split("=");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        obj[param[0]] = param[1];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return obj;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function getParamsFromURL(url: string)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    const indexOfQuestionMark: number = url.indexOf("?");
 | 
				
			||||||
 | 
					    const indexOfSharp: number = url.indexOf("#");
 | 
				
			||||||
 | 
					    const paramObj = {};
 | 
				
			||||||
 | 
					    let paramString;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //url中没有问号,说明没有参数
 | 
				
			||||||
 | 
					    if (indexOfQuestionMark < 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return paramObj;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //检查是否有#号
 | 
				
			||||||
 | 
					    if (indexOfSharp < 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        //没有#号,可以直接截取参数字符串
 | 
				
			||||||
 | 
					        paramString = url.substring(indexOfQuestionMark);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        //有#号,需要排除掉#的内容
 | 
				
			||||||
 | 
					        const end: number = indexOfQuestionMark < indexOfSharp ? indexOfSharp : url.length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        paramString = url.substring(indexOfQuestionMark + 1, end);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //拆分属性
 | 
				
			||||||
 | 
					    const paramArray: string[] = paramString.split("&");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    paramArray.forEach((item) =>
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (item.length == 0)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const param = item.split("=");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        paramObj[param[0]] = param[1] || "";
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return paramObj;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export { getURLParams, getParamsFromURL };
 | 
				
			||||||
							
								
								
									
										40
									
								
								code/ts/后端辅助工具/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-09 15:24:20
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-17 23:15:11
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/tsconfig.json
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "compilerOptions": {
 | 
				
			||||||
 | 
					        "outDir": "./target",
 | 
				
			||||||
 | 
					        "strict": false,
 | 
				
			||||||
 | 
					        "strictNullChecks": true,
 | 
				
			||||||
 | 
					        "strictPropertyInitialization": true,
 | 
				
			||||||
 | 
					        "sourceMap": true,
 | 
				
			||||||
 | 
					        "allowJs": true,
 | 
				
			||||||
 | 
					        "checkJs": true,
 | 
				
			||||||
 | 
					        "moduleResolution": "node",
 | 
				
			||||||
 | 
					        "module": "CommonJS",
 | 
				
			||||||
 | 
					        "target": "ES2015"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    // "files": [
 | 
				
			||||||
 | 
					    //     "./src/main.ts",
 | 
				
			||||||
 | 
					    // ],
 | 
				
			||||||
 | 
					    "include": [
 | 
				
			||||||
 | 
					        "./src/**/*",
 | 
				
			||||||
 | 
					        // "./src/*.ts",
 | 
				
			||||||
 | 
					        // "src/main.ts",
 | 
				
			||||||
 | 
					        // ".eslintrc.js",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "exclude": [
 | 
				
			||||||
 | 
					        "./target",
 | 
				
			||||||
 | 
					        "node_modules",
 | 
				
			||||||
 | 
					        "bower_componets",
 | 
				
			||||||
 | 
					        "jspm_packages",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    // "outFile": "./target/mian.js",
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										12
									
								
								code/ts/后端辅助工具/webpack.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2023-02-23 16:15:45
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-28 09:22:08
 | 
				
			||||||
 | 
					 * @FilePath: /后端辅助工具/webpack.config.js
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					// const path = require("path");
 | 
				
			||||||
 | 
					import { path } from "path";
 | 
				
			||||||
@@ -1,3 +0,0 @@
 | 
				
			|||||||
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"
 | 
					 | 
				
			||||||
VUE_APP_API_URL_REQUIREMENT_STATUS= "http://222.76.244.118:11001/requirement/query_requirement_status.do"
 | 
					 | 
				
			||||||
@@ -1,44 +0,0 @@
 | 
				
			|||||||
/*
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2022-12-14 15:12:46
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-06 00:36:26
 | 
					 | 
				
			||||||
 * @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": ["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, },],
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
@@ -1,5 +0,0 @@
 | 
				
			|||||||
module.exports = {
 | 
					 | 
				
			||||||
  presets: [
 | 
					 | 
				
			||||||
    '@vue/cli-plugin-babel/preset'
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										23970
									
								
								code/web/IT工具综合平台/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						@@ -1,38 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
    "name": "CPIC-IT-Console",
 | 
					 | 
				
			||||||
    "version": "0.1.0",
 | 
					 | 
				
			||||||
    "private": true,
 | 
					 | 
				
			||||||
    "scripts": {
 | 
					 | 
				
			||||||
        "serve": "vue-cli-service serve",
 | 
					 | 
				
			||||||
        "build": "vue-cli-service build",
 | 
					 | 
				
			||||||
        "lint": "vue-cli-service lint"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "dependencies": {
 | 
					 | 
				
			||||||
        "@element-plus/icons-vue": "^2.0.10",
 | 
					 | 
				
			||||||
        "@wangeditor/editor": "^5.1.23",
 | 
					 | 
				
			||||||
        "@wangeditor/editor-for-vue": "^5.1.12",
 | 
					 | 
				
			||||||
        "axios": "^1.2.1",
 | 
					 | 
				
			||||||
        "core-js": "^3.8.3",
 | 
					 | 
				
			||||||
        "element-plus": "^2.2.26",
 | 
					 | 
				
			||||||
        "sass": "^1.56.2",
 | 
					 | 
				
			||||||
        "sass-loader": "^13.2.0",
 | 
					 | 
				
			||||||
        "scss": "^0.2.4",
 | 
					 | 
				
			||||||
        "scss-loader": "^0.0.1",
 | 
					 | 
				
			||||||
        "vue": "^3.2.13",
 | 
					 | 
				
			||||||
        "vue-router": "^4.0.3",
 | 
					 | 
				
			||||||
        "vuex": "^4.0.0"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "devDependencies": {
 | 
					 | 
				
			||||||
        "@babel/core": "^7.12.16",
 | 
					 | 
				
			||||||
        "@babel/eslint-parser": "^7.12.16",
 | 
					 | 
				
			||||||
        "@vue/cli-plugin-babel": "~5.0.0",
 | 
					 | 
				
			||||||
        "@vue/cli-plugin-eslint": "~5.0.0",
 | 
					 | 
				
			||||||
        "@vue/cli-plugin-router": "~5.0.0",
 | 
					 | 
				
			||||||
        "@vue/cli-plugin-vuex": "~5.0.0",
 | 
					 | 
				
			||||||
        "@vue/cli-service": "~5.0.0",
 | 
					 | 
				
			||||||
        "eslint": "^7.32.0",
 | 
					 | 
				
			||||||
        "eslint-plugin-vue": "^8.0.3",
 | 
					 | 
				
			||||||
        "svg-sprite-loader": "^2.1.0",
 | 
					 | 
				
			||||||
        "vue-cli-plugin-element-plus": "~0.0.13"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,37 +0,0 @@
 | 
				
			|||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2022-12-14 15:12:46
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-03 18:53:11
 | 
					 | 
				
			||||||
 * @FilePath: \IT工具综合平台\src\App.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <el-config-provider :locale="this.locale">
 | 
					 | 
				
			||||||
    <router-view></router-view>
 | 
					 | 
				
			||||||
  </el-config-provider>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
//引入语言组件
 | 
					 | 
				
			||||||
import zhCn from "element-plus/lib/locale/lang/zh-cn";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "App",
 | 
					 | 
				
			||||||
  setup()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    const locale = zhCn;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return { locale };
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  components: {
 | 
					 | 
				
			||||||
    // HelloWorld,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -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;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,118 +0,0 @@
 | 
				
			|||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2023-01-04 11:05:44
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-06 09:26:48
 | 
					 | 
				
			||||||
 * @FilePath: /IT工具综合平台/src/layout/Index.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <el-container id="layout-container" v-loading="ui.ageVisible" element-loading-text="载入应用数据…">
 | 
					 | 
				
			||||||
    <el-header id="layout-header">
 | 
					 | 
				
			||||||
      <LayoutHeader />
 | 
					 | 
				
			||||||
    </el-header>
 | 
					 | 
				
			||||||
    <el-container id="layout-container-down">
 | 
					 | 
				
			||||||
      <el-aside :width="asideWidth" id="layout-aside">
 | 
					 | 
				
			||||||
        <LayoutAside />
 | 
					 | 
				
			||||||
      </el-aside>
 | 
					 | 
				
			||||||
      <el-main id="layout-main">
 | 
					 | 
				
			||||||
        <LayoutMain />
 | 
					 | 
				
			||||||
      </el-main>
 | 
					 | 
				
			||||||
    </el-container>
 | 
					 | 
				
			||||||
  </el-container>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
import LayoutAside from "./components/Aside.vue";
 | 
					 | 
				
			||||||
import LayoutHeader from "./components/Header.vue";
 | 
					 | 
				
			||||||
import LayoutMain from "./components/Main.vue";
 | 
					 | 
				
			||||||
import { useStore } from "vuex";
 | 
					 | 
				
			||||||
import { onMounted, computed, reactive } from "vue";
 | 
					 | 
				
			||||||
// import { query_requirement_status } from "@/utils/api/requirement/requirement.js";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "layoutPage",
 | 
					 | 
				
			||||||
  setup()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    const store = useStore();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const ui = reactive(
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        pageVisible: true,
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const asideWidth = computed(() =>
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      const collapse = store.state.app.asideBarCollapse;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      return collapse === true ? "65px" : "180px";
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    onMounted(() =>
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      //加载数据
 | 
					 | 
				
			||||||
      // query_requirement_status()
 | 
					 | 
				
			||||||
      //   .then((response) =>
 | 
					 | 
				
			||||||
      //   {
 | 
					 | 
				
			||||||
      //     // debugger;
 | 
					 | 
				
			||||||
      //     const data = response.data;
 | 
					 | 
				
			||||||
      //     console.log(data);
 | 
					 | 
				
			||||||
      //   })
 | 
					 | 
				
			||||||
      //   .catch((error) =>
 | 
					 | 
				
			||||||
      //   {
 | 
					 | 
				
			||||||
      //     // debugger;
 | 
					 | 
				
			||||||
      //     console.log(error);
 | 
					 | 
				
			||||||
      //   });
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      ui,
 | 
					 | 
				
			||||||
      asideWidth,
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  components: {
 | 
					 | 
				
			||||||
    LayoutAside,
 | 
					 | 
				
			||||||
    LayoutHeader,
 | 
					 | 
				
			||||||
    LayoutMain,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
#layout-container {
 | 
					 | 
				
			||||||
  height: 100vh;
 | 
					 | 
				
			||||||
  /* width: 100vw; */
 | 
					 | 
				
			||||||
  max-height: 100vh;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#layout-container-down {
 | 
					 | 
				
			||||||
  height: calc(100vh - 50px);
 | 
					 | 
				
			||||||
  max-height: calc(100vh - 50px);
 | 
					 | 
				
			||||||
  min-height: calc(100vh - 50px);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#layout-aside {
 | 
					 | 
				
			||||||
  /* width: 175px; */
 | 
					 | 
				
			||||||
  background-color: #2f4156;
 | 
					 | 
				
			||||||
  overflow-x: hidden;
 | 
					 | 
				
			||||||
  height: calc(100vh - 50px);
 | 
					 | 
				
			||||||
  max-height: calc(100vh - 50px);
 | 
					 | 
				
			||||||
  min-height: calc(100vh - 50px);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#layout-header {
 | 
					 | 
				
			||||||
  height: 50px;
 | 
					 | 
				
			||||||
  padding: 0px;
 | 
					 | 
				
			||||||
  flex-grow: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#layout-main {
 | 
					 | 
				
			||||||
  padding: 0px;
 | 
					 | 
				
			||||||
  height: 100%;
 | 
					 | 
				
			||||||
  /* height: calc(100vh - 50px); */
 | 
					 | 
				
			||||||
  /* flex-grow: 1; */
 | 
					 | 
				
			||||||
  /* overflow: overlay; */
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,99 +0,0 @@
 | 
				
			|||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2023-01-04 11:39:04
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-04 01:09:49
 | 
					 | 
				
			||||||
 * @FilePath: \IT工具综合平台\src\layout\components\Header.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <div class="app_banner no_select">
 | 
					 | 
				
			||||||
    <span class="company_name">CPIC</span>
 | 
					 | 
				
			||||||
    <div class="version_div">
 | 
					 | 
				
			||||||
      <div>测试版</div>
 | 
					 | 
				
			||||||
      <div>3.6.7 x64 Build 202208301257</div>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    <div class="buttons_div">
 | 
					 | 
				
			||||||
      <User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" />
 | 
					 | 
				
			||||||
      <SwitchButton style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" @click="logout" />
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
//import { ElMessage } from "element-plus";
 | 
					 | 
				
			||||||
import { Logout } from "../../utils/api/info/account";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "AppBanner",
 | 
					 | 
				
			||||||
  data()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    return {};
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  // created() {
 | 
					 | 
				
			||||||
  //   console.log("banner请求数据!");
 | 
					 | 
				
			||||||
  // },
 | 
					 | 
				
			||||||
  mounted()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    //console.log("banner请求数据!");
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  methods: {
 | 
					 | 
				
			||||||
    logout()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      this.$confirm("是否退出系统?", "请确认", {
 | 
					 | 
				
			||||||
        confirmButtonText: "是",
 | 
					 | 
				
			||||||
        cancelButtonText: "否",
 | 
					 | 
				
			||||||
        type: "warning",
 | 
					 | 
				
			||||||
      }).then(() =>
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        Logout();
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
.app_banner {
 | 
					 | 
				
			||||||
  background-color: var(--banner-background-color);
 | 
					 | 
				
			||||||
  color: #fff;
 | 
					 | 
				
			||||||
  display: flex;
 | 
					 | 
				
			||||||
  justify-content: left;
 | 
					 | 
				
			||||||
  align-items: center;
 | 
					 | 
				
			||||||
  padding: 0px 15px 0px 15px;
 | 
					 | 
				
			||||||
  height: 100%;
 | 
					 | 
				
			||||||
  position: relative;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.no_select {
 | 
					 | 
				
			||||||
  -webkit-touch-callout: none;
 | 
					 | 
				
			||||||
  -moz-user-select: none;
 | 
					 | 
				
			||||||
  /*火狐*/
 | 
					 | 
				
			||||||
  -webkit-user-select: none;
 | 
					 | 
				
			||||||
  /*webkit浏览器*/
 | 
					 | 
				
			||||||
  -ms-user-select: none;
 | 
					 | 
				
			||||||
  /*IE10*/
 | 
					 | 
				
			||||||
  -khtml-user-select: none;
 | 
					 | 
				
			||||||
  /*早期浏览器*/
 | 
					 | 
				
			||||||
  user-select: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.app_banner>*+* {
 | 
					 | 
				
			||||||
  margin-left: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.company_name {
 | 
					 | 
				
			||||||
  font-size: 2rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.version_div {
 | 
					 | 
				
			||||||
  font-size: 0.5rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.buttons_div {
 | 
					 | 
				
			||||||
  margin-left: auto;
 | 
					 | 
				
			||||||
  padding-top: 5px;
 | 
					 | 
				
			||||||
  /* border: 1px solid salmon; */
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,91 +0,0 @@
 | 
				
			|||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2023-01-04 11:39:04
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-06 10:17:22
 | 
					 | 
				
			||||||
 * @FilePath: /IT工具综合平台/src/layout/components/Header.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <div class="app_banner no_select">
 | 
					 | 
				
			||||||
    <span class="company_name">CPIC</span>
 | 
					 | 
				
			||||||
    <div class="version_div">
 | 
					 | 
				
			||||||
      <div>测试版</div>
 | 
					 | 
				
			||||||
      <div>3.6.7 x64 Build 202208301257</div>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    <div class="buttons_div">
 | 
					 | 
				
			||||||
      <User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" />
 | 
					 | 
				
			||||||
      <SwitchButton style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" @click="logout" />
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
import { ElMessageBox } from "element-plus";
 | 
					 | 
				
			||||||
import { Logout } from "../../utils/api/info/account";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "AppBanner",
 | 
					 | 
				
			||||||
  setup(props, context)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    const logout = () =>
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      ElMessageBox.confirm("是否退出系统?", "请确认", {
 | 
					 | 
				
			||||||
        confirmButtonText: "是",
 | 
					 | 
				
			||||||
        cancelButtonText: "否",
 | 
					 | 
				
			||||||
        type: "warning",
 | 
					 | 
				
			||||||
      }).then(() =>
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        Logout();
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return { logout, };
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
.app_banner {
 | 
					 | 
				
			||||||
  background-color: var(--banner-background-color);
 | 
					 | 
				
			||||||
  color: #fff;
 | 
					 | 
				
			||||||
  display: flex;
 | 
					 | 
				
			||||||
  justify-content: left;
 | 
					 | 
				
			||||||
  align-items: center;
 | 
					 | 
				
			||||||
  padding: 0px 15px 0px 15px;
 | 
					 | 
				
			||||||
  height: 100%;
 | 
					 | 
				
			||||||
  position: relative;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.no_select {
 | 
					 | 
				
			||||||
  -webkit-touch-callout: none;
 | 
					 | 
				
			||||||
  -moz-user-select: none;
 | 
					 | 
				
			||||||
  /*火狐*/
 | 
					 | 
				
			||||||
  -webkit-user-select: none;
 | 
					 | 
				
			||||||
  /*webkit浏览器*/
 | 
					 | 
				
			||||||
  -ms-user-select: none;
 | 
					 | 
				
			||||||
  /*IE10*/
 | 
					 | 
				
			||||||
  -khtml-user-select: none;
 | 
					 | 
				
			||||||
  /*早期浏览器*/
 | 
					 | 
				
			||||||
  user-select: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.app_banner>*+* {
 | 
					 | 
				
			||||||
  margin-left: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.company_name {
 | 
					 | 
				
			||||||
  font-size: 2rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.version_div {
 | 
					 | 
				
			||||||
  font-size: 0.5rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.buttons_div {
 | 
					 | 
				
			||||||
  margin-left: auto;
 | 
					 | 
				
			||||||
  padding-top: 5px;
 | 
					 | 
				
			||||||
  /* border: 1px solid salmon; */
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,194 +0,0 @@
 | 
				
			|||||||
/*
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2022-12-14 15:12:46
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-04 22:36:13
 | 
					 | 
				
			||||||
 * @FilePath: /IT工具综合平台/src/router/index.js
 | 
					 | 
				
			||||||
 * @Description: 定义应用路由配置
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
import { createRouter, createWebHashHistory } from 'vue-router';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const routes = [
 | 
					 | 
				
			||||||
  //框架路由
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    path: "/",
 | 
					 | 
				
			||||||
    name: "Root",
 | 
					 | 
				
			||||||
    redirect: "Login", //默认路由指向登录页面
 | 
					 | 
				
			||||||
    hidden: true,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    path:"/error-page",
 | 
					 | 
				
			||||||
    name: "ErrorPage",
 | 
					 | 
				
			||||||
    hidden: true,
 | 
					 | 
				
			||||||
    component: ()=> import("@/views/ErrorPage.vue"),
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    path: "/login",
 | 
					 | 
				
			||||||
    name: "Login",
 | 
					 | 
				
			||||||
    component: () => import("../views/account/Login.vue"),
 | 
					 | 
				
			||||||
    hidden: true,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    path: "/home",
 | 
					 | 
				
			||||||
    name: "Home",
 | 
					 | 
				
			||||||
    hidden: true,
 | 
					 | 
				
			||||||
    meta: {
 | 
					 | 
				
			||||||
      title: "控制台"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    component: () => import("../layout/Index.vue"),
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  //侧边导航栏路由
 | 
					 | 
				
			||||||
  { //首页
 | 
					 | 
				
			||||||
    path: "/console",
 | 
					 | 
				
			||||||
    name: "Console",
 | 
					 | 
				
			||||||
    meta: {
 | 
					 | 
				
			||||||
      title: "总览",
 | 
					 | 
				
			||||||
      icon: "house",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    component: () => import("../layout/Index.vue"),
 | 
					 | 
				
			||||||
    children: [
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        path: "/desktop",
 | 
					 | 
				
			||||||
        name: "DeskTop",
 | 
					 | 
				
			||||||
        meta: {
 | 
					 | 
				
			||||||
          title: "工作台",
 | 
					 | 
				
			||||||
          icon: "house",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        component: () => import("../views/overview/Desktop.vue"),
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    //需求管理
 | 
					 | 
				
			||||||
    path: "/requirement",
 | 
					 | 
				
			||||||
    name: "Requirement",
 | 
					 | 
				
			||||||
    meta: {
 | 
					 | 
				
			||||||
      title: "需求管理",
 | 
					 | 
				
			||||||
      icon: "Document",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    component: () => import("../layout/Index.vue"),
 | 
					 | 
				
			||||||
    children: [
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        path: "/requirement-manager",
 | 
					 | 
				
			||||||
        name: "RequirementManager",
 | 
					 | 
				
			||||||
        meta: {
 | 
					 | 
				
			||||||
          title: "需求管理",
 | 
					 | 
				
			||||||
          icon: "Document",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        component: () => import("../views/requirement/RequirementManager.vue"),
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        path: "/requirement-editing",
 | 
					 | 
				
			||||||
        name: "RequirementEditing",
 | 
					 | 
				
			||||||
        hidden: true,
 | 
					 | 
				
			||||||
        meta: {
 | 
					 | 
				
			||||||
          title: "需求管理",
 | 
					 | 
				
			||||||
          icon: "edit",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        component: () => import("../views/requirement/RequirementEditing.vue"),
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {//信息管理
 | 
					 | 
				
			||||||
    path: "/privilege",
 | 
					 | 
				
			||||||
    name: "Privilege",
 | 
					 | 
				
			||||||
    meta: {
 | 
					 | 
				
			||||||
      title: "权限管理",
 | 
					 | 
				
			||||||
      icon: "User",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    children: [
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        path: "/user-manager",
 | 
					 | 
				
			||||||
        name: "UserManager",
 | 
					 | 
				
			||||||
        meta: {
 | 
					 | 
				
			||||||
          title: "用户管理",
 | 
					 | 
				
			||||||
          icon: "User",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        component: () => import("../views/privilege/StaffInfo.vue"),
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        path: "/privilege-manager",
 | 
					 | 
				
			||||||
        name: "PrivilegeManager",
 | 
					 | 
				
			||||||
        meta: {
 | 
					 | 
				
			||||||
          title: "权限管理",
 | 
					 | 
				
			||||||
          icon: "edit",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        component: () => import("../views/privilege/PrivilegeManager.vue"),
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    component: () => import("../layout/Index.vue"),
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    path: "/network",
 | 
					 | 
				
			||||||
    name: "NetworkManager",
 | 
					 | 
				
			||||||
    meta: {
 | 
					 | 
				
			||||||
      title: "网络管理",
 | 
					 | 
				
			||||||
      icon: "switch",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    component: () => import("../layout/Index.vue"),
 | 
					 | 
				
			||||||
    children: [
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        path: "/network-point-manager",
 | 
					 | 
				
			||||||
        name: "NetworkPointManager",
 | 
					 | 
				
			||||||
        meta: {
 | 
					 | 
				
			||||||
          title: "网络点管理",
 | 
					 | 
				
			||||||
          icon: "Monitor",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        component: () => import("../views/network/NetworkPoint/NetworkPoint.vue"),
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        path: "/network-point-edit",
 | 
					 | 
				
			||||||
        name: "NetworkPointEdit",
 | 
					 | 
				
			||||||
        hidden: true,
 | 
					 | 
				
			||||||
        component: () => import("../views/network/NetworkPoint/EditNetworkPoint.vue"),
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        path: "/switch-manager",
 | 
					 | 
				
			||||||
        name: "SwitchManager",
 | 
					 | 
				
			||||||
        meta: {
 | 
					 | 
				
			||||||
          title: "交换机管理",
 | 
					 | 
				
			||||||
          icon: "switch",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        component: () => import("../views/network/switch/SwitchManager.vue"),
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const router = createRouter({
 | 
					 | 
				
			||||||
  history: createWebHashHistory(),
 | 
					 | 
				
			||||||
  routes
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//前置路由守卫
 | 
					 | 
				
			||||||
router.beforeEach((to) =>
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  const token = window.localStorage.getItem("token");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  //先检查token
 | 
					 | 
				
			||||||
  if (!token)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    //如果token不存在,判断路由是否走向login,如果不是则指向login
 | 
					 | 
				
			||||||
    //走向login则不干预
 | 
					 | 
				
			||||||
    if (to.name !== "Login")
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      return {
 | 
					 | 
				
			||||||
        name: "Login",
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  //修改默认打开的页面,跳向工作台
 | 
					 | 
				
			||||||
  // if (to.name === "Home")
 | 
					 | 
				
			||||||
  // {
 | 
					 | 
				
			||||||
  //   console.log("跳向工作台");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  //   return {
 | 
					 | 
				
			||||||
  //     name: "DeskTop",
 | 
					 | 
				
			||||||
  //   };
 | 
					 | 
				
			||||||
  // }
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default router;
 | 
					 | 
				
			||||||
@@ -1,73 +0,0 @@
 | 
				
			|||||||
/*
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2023-02-06 14:12:11
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-06 15:52:55
 | 
					 | 
				
			||||||
 * @FilePath: /IT工具综合平台/src/utils/api/LocalStorage.js
 | 
					 | 
				
			||||||
 * @Description: 初始化localStorage中保存的值。
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//常量
 | 
					 | 
				
			||||||
const REQUIREMRNT_UI = "requirement_ui";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//需求管理模块
 | 
					 | 
				
			||||||
function loadRequirementUI()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    // debugger;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let requirementUI = null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    try
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        requirementUI = JSON.parse(window.localStorage.getItem(REQUIREMRNT_UI));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    catch (error)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        console.log("转换requirement-ui失败:", error);
 | 
					 | 
				
			||||||
        requirementUI = {};
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //如果之前不存在,json转换结果也会是null
 | 
					 | 
				
			||||||
    if (requirementUI === null)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        requirementUI = {};
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (requirementUI.selected_status === undefined)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        requirementUI.selected_status = [];
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (requirementUI.title === undefined)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        requirementUI.title = "";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (requirementUI.serial_no === undefined)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        requirementUI.serial_no = "";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (requirementUI.request_people === undefined)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        requirementUI.request_people = "";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (requirementUI.commit_start_date === undefined)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        requirementUI.commit_start_date = new Date();
 | 
					 | 
				
			||||||
        requirementUI.commit_start_date.setMonth(0);
 | 
					 | 
				
			||||||
        requirementUI.commit_start_date.setDate(1);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (requirementUI.commit_end_date === undefined)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        requirementUI.commit_end_date = new Date();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return requirementUI;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export { loadRequirementUI };
 | 
					 | 
				
			||||||
@@ -1,295 +0,0 @@
 | 
				
			|||||||
<!-- eslint-disable no-unused-vars -->
 | 
					 | 
				
			||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2022-12-14 15:23:54
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-07 10:46:48
 | 
					 | 
				
			||||||
 * @FilePath: /IT工具综合平台/src/views/account/Login.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <div id="login">
 | 
					 | 
				
			||||||
    <div class="form-wrapper">
 | 
					 | 
				
			||||||
      <ul class="menu-tab">
 | 
					 | 
				
			||||||
        <li :class="{ 'current': ui.current_menu === item.type }" @click="onToggleMenu(item.type)"
 | 
					 | 
				
			||||||
          v-for="item in tab_menu" :key="item.type">{{ item.label }}
 | 
					 | 
				
			||||||
        </li>
 | 
					 | 
				
			||||||
      </ul>
 | 
					 | 
				
			||||||
      <!-- <el-form ref="form" :model="form"> -->
 | 
					 | 
				
			||||||
      <el-form ref="form">
 | 
					 | 
				
			||||||
        <el-form-item>
 | 
					 | 
				
			||||||
          <label class="form-label">用户名</label>
 | 
					 | 
				
			||||||
          <el-input type="text" v-model.lazy.trim="loginForm.username"></el-input>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
        <el-form-item>
 | 
					 | 
				
			||||||
          <label class="form-label">密码</label>
 | 
					 | 
				
			||||||
          <el-input type="password" v-model.lazy.trim="loginForm.password"></el-input>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
        <el-form-item v-show="ui.current_menu === tab_menu[1].type">
 | 
					 | 
				
			||||||
          <label class="form-label">确认密码</label>
 | 
					 | 
				
			||||||
          <el-input type="password" disabled v-model.lazy.trim="loginForm.confirm_password"></el-input>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
        <el-form-item>
 | 
					 | 
				
			||||||
          <label class="form-label">验证码</label>
 | 
					 | 
				
			||||||
          <el-row :gutter="10">
 | 
					 | 
				
			||||||
            <el-col :span="14">
 | 
					 | 
				
			||||||
              <el-input type="text" disabled></el-input>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
            <el-col :span="10">
 | 
					 | 
				
			||||||
              <el-button type="danger" disabled class="el-button-block" @click="getValidateCode()">获取验证码</el-button>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
          </el-row>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
        <el-form-item>
 | 
					 | 
				
			||||||
          <el-button type="primary" class="el-button-block" @click="login" :disabled="ui.submit_btn_disable"
 | 
					 | 
				
			||||||
            :loading="ui.submit_btn_loading">
 | 
					 | 
				
			||||||
            {{ ui.current_menu === "login" ? "登录" : "注册" }}
 | 
					 | 
				
			||||||
          </el-button>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
      </el-form>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
import { reactive, onBeforeMount, onMounted } from "vue";
 | 
					 | 
				
			||||||
import { useStore } from "vuex";
 | 
					 | 
				
			||||||
import { useRouter } from "vue-router";
 | 
					 | 
				
			||||||
import { Login } from "@/utils/api/info/account";
 | 
					 | 
				
			||||||
import { ElMessage } from "element-plus";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//import router from "../../router/index";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "loginPage",
 | 
					 | 
				
			||||||
  setup()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    const store = useStore();
 | 
					 | 
				
			||||||
    const router = useRouter();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const loginForm = reactive({
 | 
					 | 
				
			||||||
      username: "",
 | 
					 | 
				
			||||||
      password: "",
 | 
					 | 
				
			||||||
      confirm_password: "",
 | 
					 | 
				
			||||||
      validateCode: "",
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const tab_menu = reactive(
 | 
					 | 
				
			||||||
      [
 | 
					 | 
				
			||||||
        { type: "login", label: "登录", },
 | 
					 | 
				
			||||||
        { type: "regiester", label: "注册", },
 | 
					 | 
				
			||||||
      ]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const ui = reactive(
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        current_menu: "",
 | 
					 | 
				
			||||||
        staffInfo: null,
 | 
					 | 
				
			||||||
        submit_btn_disable: false,
 | 
					 | 
				
			||||||
        submit_btn_loading: false,
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const onToggleMenu = (type) =>
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      ui.current_menu = type;
 | 
					 | 
				
			||||||
      console.log(process.env.VUE_APP_API_URL_LOGIN);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const getValidateCode = () =>
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      ElMessage({
 | 
					 | 
				
			||||||
        message: "测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字",
 | 
					 | 
				
			||||||
        center: true,
 | 
					 | 
				
			||||||
        type: "error",
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //将获取到的用户信息和token保存到vuex和localStorage
 | 
					 | 
				
			||||||
    const saveUserInfo = (userInfo) =>
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      console.log("保存用户信息");
 | 
					 | 
				
			||||||
      console.log("保存用户信息", store);
 | 
					 | 
				
			||||||
      //保存到vuex
 | 
					 | 
				
			||||||
      store.commit("app/SET_USERINFO", userInfo);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      //保存到localStorage
 | 
					 | 
				
			||||||
      const token = userInfo.token;
 | 
					 | 
				
			||||||
      const userInfoJson = JSON.stringify(userInfo);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      window.localStorage.setItem("token", token);
 | 
					 | 
				
			||||||
      window.localStorage.setItem("user_info", userInfoJson);
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 登录
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    const login = () =>
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      if (loginForm.username.length === 0 || loginForm.password === 0)
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        ElMessage({
 | 
					 | 
				
			||||||
          message: "请填写您的P13账号和密码!",
 | 
					 | 
				
			||||||
          type: "error",
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      ui.submit_btn_disable = true;
 | 
					 | 
				
			||||||
      ui.submit_btn_loading = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      const userInfo = {
 | 
					 | 
				
			||||||
        p13account: loginForm.username,
 | 
					 | 
				
			||||||
        password: loginForm.password,
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      Login(userInfo)
 | 
					 | 
				
			||||||
        .then((response) =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          //成功获取到返回值时的响应函数,要判断返回值的成功标志
 | 
					 | 
				
			||||||
          //验证成功,将获取到的token和用户信息保存到vuex和localStoreage
 | 
					 | 
				
			||||||
          //然后router.push,进行路由跳转到控制台
 | 
					 | 
				
			||||||
          const data = response.data;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          //判断是否成功,显示提示信息
 | 
					 | 
				
			||||||
          if (data.success === true)
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            ElMessage({
 | 
					 | 
				
			||||||
              message: data.message,
 | 
					 | 
				
			||||||
              type: "success",
 | 
					 | 
				
			||||||
              center: true,
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ui.staffInfo = data.staffInfo;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //保存用户信息和token
 | 
					 | 
				
			||||||
            saveUserInfo(data);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //验证成功,跳转路由
 | 
					 | 
				
			||||||
            router.push("/Desktop");
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          else
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            //验证失败
 | 
					 | 
				
			||||||
            ElMessage({
 | 
					 | 
				
			||||||
              message: data.message,
 | 
					 | 
				
			||||||
              type: "error",
 | 
					 | 
				
			||||||
              center: true,
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ui.submit_btn_disable = false;
 | 
					 | 
				
			||||||
            ui.submit_btn_loading = false;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
        .catch((error) =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          //没有获取到响应数据
 | 
					 | 
				
			||||||
          console.log(error);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          ElMessage({
 | 
					 | 
				
			||||||
            message: error.message,
 | 
					 | 
				
			||||||
            type: "error",
 | 
					 | 
				
			||||||
            center: true,
 | 
					 | 
				
			||||||
          });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          ui.submit_btn_disable = false;
 | 
					 | 
				
			||||||
          ui.submit_btn_loading = false;
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    onBeforeMount(() =>
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      //初始化菜单选项
 | 
					 | 
				
			||||||
      ui.current_menu = tab_menu[0].type;
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    onMounted(() =>
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      //清理状态
 | 
					 | 
				
			||||||
      store.state.app.userInfo = null;
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      //数据
 | 
					 | 
				
			||||||
      ui,
 | 
					 | 
				
			||||||
      loginForm,
 | 
					 | 
				
			||||||
      tab_menu,
 | 
					 | 
				
			||||||
      //方法
 | 
					 | 
				
			||||||
      onToggleMenu,
 | 
					 | 
				
			||||||
      saveUserInfo,
 | 
					 | 
				
			||||||
      login,
 | 
					 | 
				
			||||||
      getValidateCode,
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
#login {
 | 
					 | 
				
			||||||
  height: 100vh;
 | 
					 | 
				
			||||||
  background-color: #344a5f;
 | 
					 | 
				
			||||||
  padding-top: 50px;
 | 
					 | 
				
			||||||
  background-image: url("@/assets/img/cropped-1600-900-36302.jpg");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.form-wrapper {
 | 
					 | 
				
			||||||
  width: 320px;
 | 
					 | 
				
			||||||
  padding: 30px;
 | 
					 | 
				
			||||||
  margin: auto;
 | 
					 | 
				
			||||||
  background-color: #ffffffaf;
 | 
					 | 
				
			||||||
  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 {
 | 
					 | 
				
			||||||
  text-align: center;
 | 
					 | 
				
			||||||
  margin-bottom: 15px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.menu-tab li {
 | 
					 | 
				
			||||||
  display: inline-block;
 | 
					 | 
				
			||||||
  padding: 10px 24px;
 | 
					 | 
				
			||||||
  margin: 0 10px;
 | 
					 | 
				
			||||||
  color: #344a5fef;
 | 
					 | 
				
			||||||
  font-size: 14px;
 | 
					 | 
				
			||||||
  border-radius: 5px;
 | 
					 | 
				
			||||||
  cursor: pointer;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.menu-tab .current {
 | 
					 | 
				
			||||||
  background-color: rgba(0, 0, 0, 0.1);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.form-label {
 | 
					 | 
				
			||||||
  display: block;
 | 
					 | 
				
			||||||
  /* color: #fff; */
 | 
					 | 
				
			||||||
  color: #344a5fef;
 | 
					 | 
				
			||||||
  font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.el-input {
 | 
					 | 
				
			||||||
  color: #344a5fef;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.el-button-block {
 | 
					 | 
				
			||||||
  width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,37 +0,0 @@
 | 
				
			|||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2023-01-25 11:26:11
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-01-25 11:26:13
 | 
					 | 
				
			||||||
 * @FilePath: \admin_system\src\views\network\NetworkPoint copy.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * 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>
 | 
					 | 
				
			||||||
  <div>网络点位信息修改</div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "network-point-editor",
 | 
					 | 
				
			||||||
  data()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    return {};
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,27 +0,0 @@
 | 
				
			|||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2023-01-25 11:24:47
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-01-25 11:34:07
 | 
					 | 
				
			||||||
 * @FilePath: \admin_system\src\views\network\NetworkPoint.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
    <div>网络点位管理</div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
    name: "network-point-management",
 | 
					 | 
				
			||||||
    data()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return {};
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,120 +0,0 @@
 | 
				
			|||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2023-01-06 15:30:12
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-04 22:38:47
 | 
					 | 
				
			||||||
 * @FilePath: /IT工具综合平台/src/views/overview/desktop.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
    <el-form :inline="true" label-width="5em" class="query_form">
 | 
					 | 
				
			||||||
        <el-row :gutter="10">
 | 
					 | 
				
			||||||
            <el-col :span="7">
 | 
					 | 
				
			||||||
                <el-form-item label="需求编号">
 | 
					 | 
				
			||||||
                    <el-input style="width:100%;"></el-input>
 | 
					 | 
				
			||||||
                </el-form-item>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
            <el-col :span="7">
 | 
					 | 
				
			||||||
                <el-form-item label="标题">
 | 
					 | 
				
			||||||
                    <el-input style="width:100%;"></el-input>
 | 
					 | 
				
			||||||
                </el-form-item>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
            <el-col :span="7">
 | 
					 | 
				
			||||||
                <el-form-item label="提交人">
 | 
					 | 
				
			||||||
                    <el-input style="width:100%;"></el-input>
 | 
					 | 
				
			||||||
                </el-form-item>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
            <el-col :span="3"></el-col>
 | 
					 | 
				
			||||||
        </el-row>
 | 
					 | 
				
			||||||
        <el-row :gutter="10">
 | 
					 | 
				
			||||||
            <el-col :span="7">
 | 
					 | 
				
			||||||
                <el-form-item label="状态">
 | 
					 | 
				
			||||||
                    <el-select style="width:100%;">
 | 
					 | 
				
			||||||
                        <el-option key="部门审批" value="部门审批"></el-option>
 | 
					 | 
				
			||||||
                        <el-option key="需求分析" value="需求分析">需求分析</el-option>
 | 
					 | 
				
			||||||
                        <el-option key="技术开发" value="技术开发">技术开发</el-option>
 | 
					 | 
				
			||||||
                        <el-option key="被退回" value="被退回"></el-option>
 | 
					 | 
				
			||||||
                    </el-select>
 | 
					 | 
				
			||||||
                </el-form-item>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
            <el-col :span="7">
 | 
					 | 
				
			||||||
                <el-form-item label="提交日期">
 | 
					 | 
				
			||||||
                    <el-date-picker style="width:100%;" v-model="start_date"></el-date-picker>
 | 
					 | 
				
			||||||
                </el-form-item>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
            <el-col :span="7">
 | 
					 | 
				
			||||||
                <el-form-item label="至">
 | 
					 | 
				
			||||||
                    <el-date-picker style="width:100%;" v-model="end_date"></el-date-picker>
 | 
					 | 
				
			||||||
                </el-form-item>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
            <el-col :span="3"></el-col>
 | 
					 | 
				
			||||||
        </el-row>
 | 
					 | 
				
			||||||
        <el-row>
 | 
					 | 
				
			||||||
            <el-col :span="14">
 | 
					 | 
				
			||||||
                <el-form-item label="提交日期">
 | 
					 | 
				
			||||||
                    <el-date-picker type="daterange" range-separator="至" style="width:100%;"></el-date-picker>
 | 
					 | 
				
			||||||
                </el-form-item>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
            <el-col :span="10"></el-col>
 | 
					 | 
				
			||||||
        </el-row>
 | 
					 | 
				
			||||||
    </el-form>
 | 
					 | 
				
			||||||
    <el-button type="danger" @click="testRequest">测试</el-button>
 | 
					 | 
				
			||||||
    <el-button type="danger" @click="testError">错误</el-button>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script >
 | 
					 | 
				
			||||||
import { reactive, onBeforeMount } from "vue";
 | 
					 | 
				
			||||||
import { useStore } from "vuex";
 | 
					 | 
				
			||||||
import { useRouter } from "vue-router";
 | 
					 | 
				
			||||||
import { query_requirement_ui } from "@/utils/api/requirement/requirement.js";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
    name: "DeskTop",
 | 
					 | 
				
			||||||
    setup()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        let start_date = reactive(new Date());
 | 
					 | 
				
			||||||
        let end_date = reactive(new Date());
 | 
					 | 
				
			||||||
        const router = useRouter();
 | 
					 | 
				
			||||||
        const store = useStore();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        onBeforeMount(() =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            end_date = new Date(Date.now());
 | 
					 | 
				
			||||||
            start_date = new Date();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            start_date.setMonth(end_date.getMonth() - 1);
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const testRequest = () =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            // const ui = store.state.app.ui;
 | 
					 | 
				
			||||||
            // const requirement = store.state.requirement;
 | 
					 | 
				
			||||||
            //加载数据;
 | 
					 | 
				
			||||||
            query_requirement_ui(store);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            console.log(store.state.app);
 | 
					 | 
				
			||||||
            console.log(store.state.requirement);
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const testError = () => 
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            router.push("/error-page");
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return {
 | 
					 | 
				
			||||||
            start_date,
 | 
					 | 
				
			||||||
            end_date,
 | 
					 | 
				
			||||||
            testRequest,
 | 
					 | 
				
			||||||
            testError,
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
.query_form {
 | 
					 | 
				
			||||||
    max-width: 63em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,553 +0,0 @@
 | 
				
			|||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2023-02-02 22:19:12
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-07 10:48:53
 | 
					 | 
				
			||||||
 * @FilePath: /IT工具综合平台/src/views/requirement/RequirementManager.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
    <div class="requirement_wrapper" v-loading="ui.pageVisible">
 | 
					 | 
				
			||||||
        <!-- 查询框 -->
 | 
					 | 
				
			||||||
        <div class="search-box">
 | 
					 | 
				
			||||||
            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>标题:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="16">
 | 
					 | 
				
			||||||
                    <el-input v-model.trim.lazy="query_param.title"></el-input>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
            </el-row>
 | 
					 | 
				
			||||||
            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>需求编号:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <el-input v-model.trim.lazy="query_param.serial_no" placeholder="请输入末尾三位数字"></el-input>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>申请人:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <el-input v-model.trim.lazy="query_param.request_people"></el-input>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>状态:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <!-- <el-input v-model="query_param.status"></el-input> -->
 | 
					 | 
				
			||||||
                    <el-select multiple collapse-tags collapse-tags-tooltip
 | 
					 | 
				
			||||||
                        v-model.trim.lazy="query_param.selected_status">
 | 
					 | 
				
			||||||
                        <el-option v-for="option in statusData" :value="option.status_name" lable="option.status_code"
 | 
					 | 
				
			||||||
                            :key="option.status_code + option.status_name"></el-option>
 | 
					 | 
				
			||||||
                    </el-select>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="6"></el-col>
 | 
					 | 
				
			||||||
            </el-row>
 | 
					 | 
				
			||||||
            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>提交日期:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <el-date-picker v-model="query_param.commit_start_date" style="width:100%;"></el-date-picker>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>至:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <el-date-picker v-model="query_param.commit_end_date" style="width:100%;"></el-date-picker>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="6">
 | 
					 | 
				
			||||||
                    <div class="button-wrapper-right">
 | 
					 | 
				
			||||||
                        <el-button type="primary" icon="search">查询</el-button>
 | 
					 | 
				
			||||||
                        <el-button icon="Refresh">重置</el-button>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="6"></el-col>
 | 
					 | 
				
			||||||
            </el-row>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <!-- 工具栏 -->
 | 
					 | 
				
			||||||
        <div class="tool-button-wrapper">
 | 
					 | 
				
			||||||
            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <div class="button-wrapper-left">
 | 
					 | 
				
			||||||
                        <el-button type="success" icon="DocumentAdd" plain @click="addNewRequirement()">新增</el-button>
 | 
					 | 
				
			||||||
                        <el-button type="warning" icon="document" plain>导出</el-button>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="20">
 | 
					 | 
				
			||||||
                    <div class="table-display-wrapper">
 | 
					 | 
				
			||||||
                        <span>结果筛选:</span>
 | 
					 | 
				
			||||||
                        <div class="result-filter-wrapper">
 | 
					 | 
				
			||||||
                            <el-checkbox-button label="已完成" checked></el-checkbox-button>
 | 
					 | 
				
			||||||
                            <el-checkbox-button label="已取消" checked></el-checkbox-button>
 | 
					 | 
				
			||||||
                            <el-checkbox-button label="被退回" checked></el-checkbox-button>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
            </el-row>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <!-- 需求列表 -->
 | 
					 | 
				
			||||||
        <el-table :data="tableData" border stripe style="width:100%;" :height="tableHeight">
 | 
					 | 
				
			||||||
            <el-table-column type="selection" align="center"></el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="需求编号" align="center" width="160">
 | 
					 | 
				
			||||||
                <template #default="requirement">
 | 
					 | 
				
			||||||
                    <span @click="showRequirementDetail(requirement.row.serial_no)" class="requirement-serial">{{
 | 
					 | 
				
			||||||
                        requirement.row.serial_no
 | 
					 | 
				
			||||||
                    }}</span>
 | 
					 | 
				
			||||||
                </template>
 | 
					 | 
				
			||||||
            </el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="标题" prop="title" min-width="200" align="center">
 | 
					 | 
				
			||||||
                <template #default="requirement">
 | 
					 | 
				
			||||||
                    <span class="requirement-title">{{ requirement.row.title }}</span>
 | 
					 | 
				
			||||||
                </template>
 | 
					 | 
				
			||||||
            </el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="申请人" prop="request_people" align="center" width="100"></el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="状态" prop="status" align="center" width="100"></el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="提交日期" prop="submit_date" align="center" width="130"></el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="操作" align="center" fixed="right" width="200">
 | 
					 | 
				
			||||||
                <template #default="scope">
 | 
					 | 
				
			||||||
                    <el-button type="warning" icon="edit" @click="editRequirement(scope.row.serial_no)">编辑</el-button>
 | 
					 | 
				
			||||||
                    <el-button type="danger" icon="delete">删除</el-button>
 | 
					 | 
				
			||||||
                </template>
 | 
					 | 
				
			||||||
            </el-table-column>
 | 
					 | 
				
			||||||
        </el-table>
 | 
					 | 
				
			||||||
        <div class="pagination_wrapper">
 | 
					 | 
				
			||||||
            <el-pagination class="pull_left" @current-change="onCurrentPageIndexChange"
 | 
					 | 
				
			||||||
                @size-change="onTablePageSizeChange" size="small" background v-model="ui.table_current_page"
 | 
					 | 
				
			||||||
                :page-size="ui.table_page_size" :page-sizes="[10, 20, 50, 100]"
 | 
					 | 
				
			||||||
                layout="total, sizes, prev, pager, next, jumper" :total="requirement_data.length">
 | 
					 | 
				
			||||||
            </el-pagination>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <!-- 需求详细信息对话框 -->
 | 
					 | 
				
			||||||
        <el-dialog title="详情" class="requirement-detail-dialog" v-model="ui.dialogRequirementDetailVisible"
 | 
					 | 
				
			||||||
            width="900px" :close-on-click-modal="true" :close-on-press-escape="false" :show-close="true" :center="false"
 | 
					 | 
				
			||||||
            @close="closeRequirementDetail">
 | 
					 | 
				
			||||||
            <el-tabs v-loading="ui.dialogRequirementDetailLoadingVisible" v-model="ui.activeTabName">
 | 
					 | 
				
			||||||
                <el-tab-pane name="requirement-detail" label="基本信息">
 | 
					 | 
				
			||||||
                    <el-scrollbar height="400px">
 | 
					 | 
				
			||||||
                        <div class="requirement-detail-wrapper">
 | 
					 | 
				
			||||||
                            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>标题1</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="22">
 | 
					 | 
				
			||||||
                                    <el-input readonly></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                            </el-row>
 | 
					 | 
				
			||||||
                            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>需求编号</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input v-model="query_param.serial_no" readonly></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>主系统</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="14">
 | 
					 | 
				
			||||||
                                    <el-input readonly></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                            </el-row>
 | 
					 | 
				
			||||||
                            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>需求分类</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.request_people"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>状态</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.select_status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>当前处理人</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.select_status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                            </el-row>
 | 
					 | 
				
			||||||
                            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>联系人</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.select_status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>联系方式</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.select_status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>提交日期</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.select_status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                            </el-row>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                    </el-scrollbar>
 | 
					 | 
				
			||||||
                </el-tab-pane>
 | 
					 | 
				
			||||||
                <el-tab-pane name="requirement-content" label="申请材料">
 | 
					 | 
				
			||||||
                    <el-scrollbar height="400px"></el-scrollbar>
 | 
					 | 
				
			||||||
                </el-tab-pane>
 | 
					 | 
				
			||||||
                <el-tab-pane name="issue-date" label="排期">
 | 
					 | 
				
			||||||
                    <el-scrollbar height="400px">
 | 
					 | 
				
			||||||
                        <el-table style="width:100%;height:400px;" border stripe>
 | 
					 | 
				
			||||||
                            <el-table-column label="系统" align="center" min-width="200"></el-table-column>
 | 
					 | 
				
			||||||
                            <el-table-column label="功能" align="center" min-width="200"></el-table-column>
 | 
					 | 
				
			||||||
                            <el-table-column label="首次排期" align="center" width="150"></el-table-column>
 | 
					 | 
				
			||||||
                            <el-table-column label="最新排期" align="center" width="150"></el-table-column>
 | 
					 | 
				
			||||||
                        </el-table>
 | 
					 | 
				
			||||||
                    </el-scrollbar>
 | 
					 | 
				
			||||||
                </el-tab-pane>
 | 
					 | 
				
			||||||
                <el-tab-pane name="comment" label="备注">
 | 
					 | 
				
			||||||
                    <el-scrollbar height="400px">
 | 
					 | 
				
			||||||
                        <p>hello world</p>
 | 
					 | 
				
			||||||
                        <p><span style="font-size: 24px;">ejfalsjfoewafsdjfdsfewo;sd;fk</span></p>
 | 
					 | 
				
			||||||
                        <ol>
 | 
					 | 
				
			||||||
                            <li><span style="color: rgb(225, 60, 57); font-size: 24px;">12344</span></li>
 | 
					 | 
				
			||||||
                            <li><span style="font-size: 24px;">33445</span></li>
 | 
					 | 
				
			||||||
                        </ol>
 | 
					 | 
				
			||||||
                        <p><br></p>
 | 
					 | 
				
			||||||
                    </el-scrollbar>
 | 
					 | 
				
			||||||
                </el-tab-pane>
 | 
					 | 
				
			||||||
            </el-tabs>
 | 
					 | 
				
			||||||
            <!-- <template #footer>
 | 
					 | 
				
			||||||
                <div class="dialogFooter">
 | 
					 | 
				
			||||||
                    <el-button type="primary" @click="dialogRequirementDetailVisible = false;">关闭</el-button>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
            </template> -->
 | 
					 | 
				
			||||||
        </el-dialog>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
import { reactive, computed, onBeforeMount, onBeforeUnmount } from "vue";
 | 
					 | 
				
			||||||
import { Editor, Toolbar } from '@wangeditor/editor-for-vue';
 | 
					 | 
				
			||||||
import { requirementTestData } from '@/test/data/TestData';
 | 
					 | 
				
			||||||
import { useRouter } from "vue-router";
 | 
					 | 
				
			||||||
import { useStore } from "vuex";
 | 
					 | 
				
			||||||
import { query_requirement_ui } from "@/utils/api/requirement/requirement";
 | 
					 | 
				
			||||||
import { loadRequirementUI } from "@/utils/api/LocalStorage.js";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
    name: "requirement-manager",
 | 
					 | 
				
			||||||
    setup()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        const router = useRouter();
 | 
					 | 
				
			||||||
        const store = useStore();
 | 
					 | 
				
			||||||
        const requirement_data = requirementTestData;
 | 
					 | 
				
			||||||
        const ui = reactive(
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                table_current_page: 1,//分页组件当前的页面索引
 | 
					 | 
				
			||||||
                table_page_size: 10,
 | 
					 | 
				
			||||||
                dialogRequirementDetailVisible: false, //需求详情对话框是否显示
 | 
					 | 
				
			||||||
                dialogRequirementDetailLoadingVisible: true,
 | 
					 | 
				
			||||||
                pageVisible: false,
 | 
					 | 
				
			||||||
                activeTabName: "requirement-detail",
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        //从localStorage加载
 | 
					 | 
				
			||||||
        const query_param = reactive(loadRequirementUI());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /*计算变量 *****************/
 | 
					 | 
				
			||||||
        const tableHeight = computed(() =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return 10 * 50 + 40;
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const tableData = computed(() =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            const startIndex = ui.table_page_size * (ui.table_current_page - 1);
 | 
					 | 
				
			||||||
            const endIndex = (ui.table_page_size * ui.table_current_page);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return requirement_data.slice(startIndex, endIndex);
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const statusData = computed(() =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return store.state.requirement.status;
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const onTablePageSizeChange = (pageSize) =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            console.log("选择的pageSize", pageSize);
 | 
					 | 
				
			||||||
            ui.table_page_size = pageSize;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        //用户变更当前页时消息处理函数
 | 
					 | 
				
			||||||
        const onCurrentPageIndexChange = (pageIndex) =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            ui.table_current_page = pageIndex;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const addNewRequirement = () =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            router.push({
 | 
					 | 
				
			||||||
                name: "RequirementEditing",
 | 
					 | 
				
			||||||
                query: {
 | 
					 | 
				
			||||||
                    serial: "new",
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const editRequirement = (requirement_serial) =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            window.localStorage.setItem("requirement_serial", requirement_serial);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            router.push({
 | 
					 | 
				
			||||||
                name: "RequirementEditing",
 | 
					 | 
				
			||||||
                query: {
 | 
					 | 
				
			||||||
                    serial: requirement_serial,
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /*****************************************************
 | 
					 | 
				
			||||||
         * 响应显示需求详情的点击事件
 | 
					 | 
				
			||||||
         * @param serial_no 需求编号
 | 
					 | 
				
			||||||
         *****************************************************/
 | 
					 | 
				
			||||||
        const showRequirementDetail = (serial_no) =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            console.log("状态", query_param.select_status);
 | 
					 | 
				
			||||||
            setTimeout(() =>
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                ui.dialogRequirementDetailLoadingVisible = false;
 | 
					 | 
				
			||||||
            }, 1000);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ui.dialogRequirementDetailVisible = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            console.log("查看需求号:", serial_no);
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //#region 需求详情对话框关闭事件
 | 
					 | 
				
			||||||
        const closeRequirementDetail = () =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            ui.dialogRequirementDetailLoadingVisible = true;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        //#endregion
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //用户选择状态时的事件
 | 
					 | 
				
			||||||
        const onUIChange = () =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            //console.log("当前选择的状态:", query_param.status);
 | 
					 | 
				
			||||||
            // debugger;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //保存到浏览器
 | 
					 | 
				
			||||||
            window.localStorage.setItem("requirement_ui", JSON.stringify(query_param));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            store.state.requirement.ui.selected_status = query_param.select_status;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //#region onBeforeMount定义
 | 
					 | 
				
			||||||
        onBeforeMount(() =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            // debugger;
 | 
					 | 
				
			||||||
            //判断selected_status是否有保存的值,有的话就直接用,否则从获取到数据中添加
 | 
					 | 
				
			||||||
            if (query_param.selected_status.length === 0)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                for (let index in store.state.requirement.status)
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    const status_name = store.state.requirement.status[index].status_name;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    if (typeof status_name === "string" && status_name.length != 0)
 | 
					 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        query_param.selected_status.push(status_name);
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                onUIChange();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
        //#endregion
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //#region onBeforeUnmount
 | 
					 | 
				
			||||||
        onBeforeUnmount(() =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            onUIChange();
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
        //#endregion
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //#region 加载数据
 | 
					 | 
				
			||||||
        //需求状态相关,默认全部选择
 | 
					 | 
				
			||||||
        query_requirement_ui(store.state.requirement, "ErrorPage");
 | 
					 | 
				
			||||||
        //#endregion
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //输出控制台
 | 
					 | 
				
			||||||
        console.log(store.state.app);
 | 
					 | 
				
			||||||
        console.log(store.state.requirement);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //#region 返回值
 | 
					 | 
				
			||||||
        return {
 | 
					 | 
				
			||||||
            //data
 | 
					 | 
				
			||||||
            requirement_data,
 | 
					 | 
				
			||||||
            ui,
 | 
					 | 
				
			||||||
            query_param,
 | 
					 | 
				
			||||||
            //计算属性
 | 
					 | 
				
			||||||
            tableHeight,
 | 
					 | 
				
			||||||
            tableData,
 | 
					 | 
				
			||||||
            statusData,
 | 
					 | 
				
			||||||
            //方法
 | 
					 | 
				
			||||||
            editRequirement,
 | 
					 | 
				
			||||||
            addNewRequirement,
 | 
					 | 
				
			||||||
            onCurrentPageIndexChange,
 | 
					 | 
				
			||||||
            onTablePageSizeChange,
 | 
					 | 
				
			||||||
            showRequirementDetail,
 | 
					 | 
				
			||||||
            closeRequirementDetail,
 | 
					 | 
				
			||||||
            onUIChange,
 | 
					 | 
				
			||||||
            //生命周期
 | 
					 | 
				
			||||||
            onBeforeMount,
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        //#endregion
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
/* 整个页面的外壳 ******************************/
 | 
					 | 
				
			||||||
.requirement_wrapper {
 | 
					 | 
				
			||||||
    padding: 10px;
 | 
					 | 
				
			||||||
    background-color: #fff;
 | 
					 | 
				
			||||||
    border-radius: 5px;
 | 
					 | 
				
			||||||
    box-shadow: 0px 0px 20px -10px rgb(14 18 22 / 25%);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement_wrapper:hover {
 | 
					 | 
				
			||||||
    box-shadow: 0px 0px 20px -10px rgb(14 18 22 / 40%);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement_wrapper>*+* {
 | 
					 | 
				
			||||||
    margin-top: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* 查询框 **********************************/
 | 
					 | 
				
			||||||
.search-box {
 | 
					 | 
				
			||||||
    padding: 0 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.search-box span {
 | 
					 | 
				
			||||||
    font-weight: normal;
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
    font-size: 15px;
 | 
					 | 
				
			||||||
    color: #5f5f5f;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.search-box>.el-row {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    justify-content: left;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.search-box .el-row+.el-row {
 | 
					 | 
				
			||||||
    margin-top: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* 查询结果筛选框 */
 | 
					 | 
				
			||||||
.tool-button-wrapper {
 | 
					 | 
				
			||||||
    padding: 0px 15px;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.tool-button-wrapper>.el-row {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    justify-content: left;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.tool-button-wrapper span {
 | 
					 | 
				
			||||||
    font-weight: small;
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
    font-size: 15px;
 | 
					 | 
				
			||||||
    color: #5f5f5f;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.tool-button-wrapper .el-checkbox {
 | 
					 | 
				
			||||||
    font-size: 15px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.table-display-wrapper {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    justify-content: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.button-wrapper-right {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: right;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.button-wrapper-left {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: left;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.result-filter-wrapper {
 | 
					 | 
				
			||||||
    padding: 0 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* 需求列表 */
 | 
					 | 
				
			||||||
.requirement-title {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    text-align: left;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-serial {
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
    cursor: pointer;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***分页组件 *************/
 | 
					 | 
				
			||||||
.pagination_wrapper {
 | 
					 | 
				
			||||||
    padding-right: 15px;
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*需求详情对话框 */
 | 
					 | 
				
			||||||
.requirement-detail-dialog {
 | 
					 | 
				
			||||||
    width: 400px;
 | 
					 | 
				
			||||||
    height: 600px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-detail-dialog .el-row {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: left;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    /* margin-top: 10px; */
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-detail-dialog .el-row+.el-row {
 | 
					 | 
				
			||||||
    margin-top: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-detail-wrapper {
 | 
					 | 
				
			||||||
    padding: 0px 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-detail-wrapper span {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
<style>
 | 
					 | 
				
			||||||
.requirement-detail-dialog .el-dialog__body {
 | 
					 | 
				
			||||||
    padding: 0px 15px 15px 15px !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
							
								
								
									
										12
									
								
								code/web/it-console/.env.development
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					###
 | 
				
			||||||
 | 
					 # @Author: Kane
 | 
				
			||||||
 | 
					 # @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"
 | 
				
			||||||
							
								
								
									
										174
									
								
								code/web/it-console/.eslintrc.cjs
									
									
									
									
									
										Normal 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",
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										2
									
								
								code/web/it-console/.npmrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					registry=https://registry.npmjs.org/
 | 
				
			||||||
 | 
					proxy=http://127.0.0.1:7890/
 | 
				
			||||||
							
								
								
									
										14
									
								
								code/web/it-console/babel.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +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 = {
 | 
				
			||||||
 | 
					    presets: [
 | 
				
			||||||
 | 
					        "@vue/cli-plugin-babel/preset",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										20
									
								
								code/web/it-console/env.d.ts
									
									
									
									
										vendored
									
									
										Normal 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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										44
									
								
								code/web/it-console/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					<!--
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2022-12-17 11:08:18
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-02-23 00:40:59
 | 
				
			||||||
 | 
					 * @FilePath: /it-console-toVite/index.html
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="zh-cn">
 | 
				
			||||||
 | 
					    <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" />
 | 
				
			||||||
 | 
					        <link rel="icon" href="public/favicon.ico" />
 | 
				
			||||||
 | 
					        <title>王炜的工具箱</title>
 | 
				
			||||||
 | 
					    </head>
 | 
				
			||||||
 | 
					    <body>
 | 
				
			||||||
 | 
					        <noscript>
 | 
				
			||||||
 | 
					            <strong
 | 
				
			||||||
 | 
					                >We're sorry but <%= title %> doesn't work properly without
 | 
				
			||||||
 | 
					                JavaScript enabled. Please enable it to continue.</strong
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					        </noscript>
 | 
				
			||||||
 | 
					        <div id="app" v-cloak></div>
 | 
				
			||||||
 | 
					        <!-- built files will be auto injected -->
 | 
				
			||||||
 | 
					        <script type="module" src="/src/main.js"></script>
 | 
				
			||||||
 | 
					    </body>
 | 
				
			||||||
 | 
					    <style>
 | 
				
			||||||
 | 
					        .v-cloak {
 | 
				
			||||||
 | 
					            display: none;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        body {
 | 
				
			||||||
 | 
					            width: 100vw;
 | 
				
			||||||
 | 
					            height: 100vh;
 | 
				
			||||||
 | 
					            max-height: 100vh;
 | 
				
			||||||
 | 
					            min-width: 1280px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -15,5 +15,9 @@
 | 
				
			|||||||
      "dom.iterable",
 | 
					      "dom.iterable",
 | 
				
			||||||
      "scripthost"
 | 
					      "scripthost"
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  }
 | 
					  },
 | 
				
			||||||
 | 
					  "exclude": [
 | 
				
			||||||
 | 
					    "node_modules",
 | 
				
			||||||
 | 
					    "node_modules_1"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										18887
									
								
								code/web/it-console/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										57
									
								
								code/web/it-console/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "name": "CPIC-IT-Console",
 | 
				
			||||||
 | 
					    "version": "0.1.0",
 | 
				
			||||||
 | 
					    "private": true,
 | 
				
			||||||
 | 
					    "scripts": {
 | 
				
			||||||
 | 
					        "serve": "vue-cli-service serve",
 | 
				
			||||||
 | 
					        "build": "vue-cli-service build",
 | 
				
			||||||
 | 
					        "lint": "vue-cli-service lint",
 | 
				
			||||||
 | 
					        "serve-vite": "vite",
 | 
				
			||||||
 | 
					        "build-vite": "vite build",
 | 
				
			||||||
 | 
					        "preview-vite": "vite preview"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "dependencies": {
 | 
				
			||||||
 | 
					        "@element-plus/icons-vue": "^2.1.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-for-vue": "^5.1.12",
 | 
				
			||||||
 | 
					        "axios": "^1.3.4",
 | 
				
			||||||
 | 
					        "core-js": "^3.30.0",
 | 
				
			||||||
 | 
					        "element-plus": "^2.3.2",
 | 
				
			||||||
 | 
					        "sass": "^1.60.0",
 | 
				
			||||||
 | 
					        "scss": "^0.2.4",
 | 
				
			||||||
 | 
					        "scss-loader": "^0.0.1",
 | 
				
			||||||
 | 
					        "vue": "^3.2.47",
 | 
				
			||||||
 | 
					        "vue-router": "^4.1.6",
 | 
				
			||||||
 | 
					        "vuex": "^4.1.0"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "devDependencies": {
 | 
				
			||||||
 | 
					        "@babel/core": "^7.21.4",
 | 
				
			||||||
 | 
					        "@babel/eslint-parser": "^7.21.3",
 | 
				
			||||||
 | 
					        "@originjs/vite-plugin-commonjs": "^1.0.3",
 | 
				
			||||||
 | 
					        "@originjs/vite-plugin-require-context": "1.0.9",
 | 
				
			||||||
 | 
					        "@vitejs/plugin-vue": "^4.1.0",
 | 
				
			||||||
 | 
					        "@vitejs/plugin-vue-jsx": "^3.0.1",
 | 
				
			||||||
 | 
					        "@vue/cli-plugin-babel": "~5.0.8",
 | 
				
			||||||
 | 
					        "@vue/cli-plugin-eslint": "~5.0.8",
 | 
				
			||||||
 | 
					        "@vue/cli-plugin-router": "~5.0.8",
 | 
				
			||||||
 | 
					        "@vue/cli-plugin-vuex": "~5.0.8",
 | 
				
			||||||
 | 
					        "@vue/cli-service": "~5.0.8",
 | 
				
			||||||
 | 
					        "@vue/compiler-sfc": "^3.2.47",
 | 
				
			||||||
 | 
					        "eslint": "^8.37.0",
 | 
				
			||||||
 | 
					        "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",
 | 
				
			||||||
 | 
					        "sass": "^1.60.0",
 | 
				
			||||||
 | 
					        "sass-loader": "^13.2.2",
 | 
				
			||||||
 | 
					        "vite": "^4.2.1",
 | 
				
			||||||
 | 
					        "vite-plugin-env-compatible": "^1.1.1",
 | 
				
			||||||
 | 
					        "vite-plugin-html": "3.2.0",
 | 
				
			||||||
 | 
					        "vue-cli-plugin-element-plus": "~0.0.13",
 | 
				
			||||||
 | 
					        "webpack": "^5.77.0",
 | 
				
			||||||
 | 
					        "webpack-cli": "^5.0.1"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB  | 
@@ -2,8 +2,8 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2022-12-17 11:08:18
 | 
					 * @Date: 2022-12-17 11:08:18
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2023-02-04 22:47:11
 | 
					 * @LastEditTime: 2023-02-23 00:44:29
 | 
				
			||||||
 * @FilePath: /IT工具综合平台/public/index.html
 | 
					 * @FilePath: /it-console-toVite/public/index.html
 | 
				
			||||||
 * @Description: 
 | 
					 * @Description: 
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
@@ -14,7 +14,7 @@
 | 
				
			|||||||
        <meta charset="utf-8" />
 | 
					        <meta charset="utf-8" />
 | 
				
			||||||
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
 | 
					        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
 | 
				
			||||||
        <meta name="viewport" content="width=device-width,initial-scale=1.0" />
 | 
					        <meta name="viewport" content="width=device-width,initial-scale=1.0" />
 | 
				
			||||||
        <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
 | 
					        <link rel="icon" href="favicon.ico" />
 | 
				
			||||||
        <title>王炜的工具箱</title>
 | 
					        <title>王炜的工具箱</title>
 | 
				
			||||||
    </head>
 | 
					    </head>
 | 
				
			||||||
    <body>
 | 
					    <body>
 | 
				
			||||||
@@ -25,9 +25,10 @@
 | 
				
			|||||||
                continue.</strong
 | 
					                continue.</strong
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
        </noscript>
 | 
					        </noscript>
 | 
				
			||||||
        <div id="app" v-cloak></div>
 | 
					        <div id="app"></div>
 | 
				
			||||||
        <!-- built files will be auto injected -->
 | 
					        <!-- built files will be auto injected -->
 | 
				
			||||||
    </body>
 | 
					    </body>
 | 
				
			||||||
 | 
					    <script type="module" src="../src/main.js"></script>
 | 
				
			||||||
    <style>
 | 
					    <style>
 | 
				
			||||||
        .v-cloak {
 | 
					        .v-cloak {
 | 
				
			||||||
            display: none;
 | 
					            display: none;
 | 
				
			||||||
							
								
								
									
										15
									
								
								code/web/it-console/shims-vue.d.ts
									
									
									
									
										vendored
									
									
										Normal 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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										37
									
								
								code/web/it-console/src/App.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					<!--
 | 
				
			||||||
 | 
					 * @Author: Kane
 | 
				
			||||||
 | 
					 * @Date: 2022-12-14 15:12:46
 | 
				
			||||||
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-03-21 23:49:05
 | 
				
			||||||
 | 
					 * @FilePath: /it-console/src/App.vue
 | 
				
			||||||
 | 
					 * @Description:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
					    <el-config-provider :locale="locale">
 | 
				
			||||||
 | 
					        <router-view />
 | 
				
			||||||
 | 
					    </el-config-provider>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script lang="ts">
 | 
				
			||||||
 | 
					// 引入语言组件
 | 
				
			||||||
 | 
					import zhCn from "element-plus/lib/locale/lang/zh-cn";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					    name: "App",
 | 
				
			||||||
 | 
					    components: {
 | 
				
			||||||
 | 
					    // HelloWorld,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    setup()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        const locale = zhCn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return { locale, };
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 773 KiB After Width: | Height: | Size: 773 KiB  | 
| 
		 Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB  | 
| 
		 Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 195 KiB  | 
@@ -2,26 +2,26 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2023-01-06 20:33:57
 | 
					 * @Date: 2023-01-06 20:33:57
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2023-01-07 17:10:07
 | 
					 * @LastEditTime: 2023-02-22 17:10:18
 | 
				
			||||||
 * @FilePath: \admin_system\src\components\svg\SvgIcon.vue
 | 
					 * @FilePath: /IT工具综合平台/src/components/svg/SvgIcon.vue
 | 
				
			||||||
 * @Description:
 | 
					 * @Description:
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * 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");
 | 
				
			||||||
@@ -31,6 +31,4 @@ export default {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<style scoped>
 | 
					<style scoped></style>
 | 
				
			||||||
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB  | 
| 
		 Before Width: | Height: | Size: 753 B After Width: | Height: | Size: 753 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB  | 
| 
		 Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB  | 
| 
		 Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB  | 
| 
		 Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB  | 
| 
		 Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB  | 
| 
		 Before Width: | Height: | Size: 928 B After Width: | Height: | Size: 928 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 937 B After Width: | Height: | Size: 937 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB  |