11 Commits

16 changed files with 1707 additions and 804 deletions

View File

@@ -7,3 +7,5 @@
# 密码 # 密码
## mysql ## mysql
root@localhost ^QaKwfmo#HNy&0D7 root@localhost ^QaKwfmo#HNy&0D7
zhiduguanli@192.168.39.183 Cpic#1234

View File

@@ -0,0 +1,21 @@
/**
* @Author: Kane Wang <wangkane@qq.com>
* @Date: 2026-01-15 15:06:41
* @LastEditors: Kane Wang
* @LastModified: 2026-01-15 15:06:41
* @FilePath: src/main/java/com/cpic/xim/utils/uuid.java
* @Description:
*
* Copyright (c) 2025 by Kane All rights reserved
*/
package com.cpic.xim.utils;
import java.util.UUID;
public class UUIDUtil
{
public static String getUUID()
{
return UUID.randomUUID().toString();
}
}

View File

@@ -18,4 +18,6 @@ VITE_APP_CACHE_ENABLED=true
#上传文件 #上传文件
VITE_APP_URL_UPLOAD_FILE=http://222.76.244.118:8081/RegulatoryManagementBackend/file/file-upload.do VITE_APP_URL_UPLOAD_FILE=http://222.76.244.118:8081/RegulatoryManagementBackend/file/file-upload.do
VITE_APP_URL_MOVE_FILE=http://222.76.244.118:8081/RegulatoryManagementBackend/file/move-file.do VITE_APP_URL_MOVE_FILE=http://222.76.244.118:8081/RegulatoryManagementBackend/file/move-file.do
# 添加新制度库
VITE_APP_URL_ADD_NEW_REGULATORY=http://localhost:8080/RegulatoryManagementBackend/regulatory/add-new-regulatory.do
VITE_APP_URL_PREFIX=http://222.76.244.118:8081/RegulatoryManagementBackend/ VITE_APP_URL_PREFIX=http://222.76.244.118:8081/RegulatoryManagementBackend/

View File

@@ -1,216 +0,0 @@
/*
* @Author: Kane
* @Date: 2023-03-14 09:19:21
* @LastEditors: Kane
* @FilePath: /task_schedule/.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,],
// 圆括号中的空格,为空不加空格,紧跟花括号、方括号、圆括号时也不加入空格
"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",], // 逗号在行位
"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, },],
"array-bracket-spacing": ["error", "never", {
singleValue: false,
objectsInArrays: false,
arraysInArrays: false,
},],
"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",
},
// project: "tsconfig.json",
project: ["tsconfig.json", "tsconfig.app.json",],
extraFileExtensions: [".vue",],
},
plugins: ["eslint-plugin-vue", "@stylistic",],
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,],
"no-trailing-spaces": ["error", {"ignoreComments": true,},],
// 圆括号中的空格,为空不加空格,紧跟花括号、方括号、圆括号时也不加入空格
"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-spacing": ["error", {"before": false, "after": true,},], // 控制行尾部分号
"quotes": ["error", "double",],
"comma-dangle": ["error", {
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},], // 数组和对象键值对最后一个逗号
"comma-style": ["error", "last",], // 逗号在行位
"no-undef-init": "error",
"no-invalid-this": "error",
"no-use-before-define": "error",
"no-shadow-restricted-names": "error", // 禁止对一些关键字或者保留字进行赋值操作比如NaN、Infinity、undefined、eval、arguments等
"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,],
"vue/max-attributes-per-line": ["error", {
"singleline": {
"max": 3,
},
"multiline": {
"max": 2,
},
},],
// typescript
// "@typescript-eslint/indent": ["warn", 4,],
"@stylistic/indent": ["warn", 4, { "SwitchCase": 1, },],
"@typescript-eslint/no-explicit-any": "warn",
// "@typescript-eslint/no-unsafe-argument": "warn",
"@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",
"@stylistic/semi": ["error", "always",], // 控制行尾部分号
"@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/comma-dangle": ["error", {
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},], // 数组和对象键值对最后一个逗号
"@stylistic/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
// 方括号的空格问题
"comma-spacing": ["error", { before: false, after: true, },],
"@typescript-eslint/comma-spacing": ["off", { before: false, after: true, },], // 使用eslint的不用ts的
"array-bracket-spacing": ["error", "never", {
singleValue: false,
objectsInArrays: false,
arraysInArrays: false,
},],
},
},
{
files: ["*.ts",],
parser: "@typescript-eslint/parser",
parserOptions: {
project: "./tsconfig.json",
// project: ["tsconfig.json", "tsconfig.app.json",],
},
plugins: ["@typescript-eslint", "@stylistic",],
extends: [
"eslint:recommended",
// "standard-with-typescript",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
],
rules: {
"no-trailing-spaces": ["error", {"ignoreComments": true,},],
// 圆括号中的空格,为空不加空格,紧跟花括号、方括号、圆括号时也不加入空格
"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/no-explicit-any": "off",
// "@typescript-eslint/no-unsafe-argument": "warn",
// "@typescript-eslint/indent": ["error", 4,],
"@stylistic/indent": ["warn", 4, { "SwitchCase": 1, },],
"@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",
"@stylistic/semi": ["error", "always",], // 控制行尾部分号
// "@typescript-eslint/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/comma-dangle": ["error", {
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},], // 数组和对象键值对最后一个逗号
"@stylistic/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/strict-boolean-expressions": ["error", {
allowString: false,
},],
"comma-style": ["error", "last",], // 逗号在行位
"comma-spacing": ["error", { before: false, after: true, },],
"@typescript-eslint/comma-spacing": ["off", { before: false, after: true, },], // 使用eslint的不用ts的
"array-bracket-spacing": ["error", "never", {
singleValue: false,
objectsInArrays: false,
arraysInArrays: false,
},],
"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",
"semi-spacing": ["error", {"before": false, "after": true,},],
},
},
],
};

View File

@@ -0,0 +1,111 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import pluginVue from "eslint-plugin-vue";
import { defineConfig } from "eslint/config";
import stylistic from "@stylistic/eslint-plugin";
export default defineConfig([
{
files: ["**/*.{js,mjs,cjs,ts,mts,cts,vue}",],
plugins: { js, },
extends: ["js/recommended",],
languageOptions: {
globals: {
...globals.browser,
...globals.node,}, },
},
tseslint.configs.recommended,
{
files: ["src/**/*.ts", "eslint.config.ts",],
plugins: {
"@stylistic": stylistic,
},
rules: {
"spaced-comment": "error",
"space-before-function-paren": "off",
"semi-spacing": ["error", {"before": false,
"after": true,},],
"@typescript-eslint/no-unused-vars": "warn",
"@stylistic/indent": ["error", 4, { SwitchCase: 1, },],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/member-delimiter-style": "off",
"@stylistic/semi": ["error", "always",], // 控制行尾部分号
"@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/comma-dangle": [
"error",
{
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},
], // 数组和对象键值对最后一个逗号
"@stylistic/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/comma-spacing": ["off", { before: false,
after: true, },], // 使用eslint的不用ts的
// "@typescript-eslint/strict-boolean-expressions": ["error", {
// allowString: false,
// },],
"@stylistic/object-property-newline": "warn",
},
},
pluginVue.configs["flat/essential"],
pluginVue.configs["flat/strongly-recommended"],
{
files: ["**/*.vue",],
plugins: {
"@stylistic": stylistic,
},
languageOptions: {
parserOptions: { parser: tseslint.parser, },
},
rules: {
"vue/html-indent": ["error", 4,],
// "vue/max-attributes-per-line": ["error", {
// "singleline": {
// "max": 1,
// },
// "multiline": {
// "max": 1,
// },
// },],
"spaced-comment": "error",
"space-before-function-paren": "off",
"semi-spacing": ["error", {"before": false,
"after": true,},],
"@typescript-eslint/no-unused-vars": "warn",
"@stylistic/indent": ["error", 4, { SwitchCase: 1, },],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/member-delimiter-style": "off",
"@stylistic/semi": ["error", "always",], // 控制行尾部分号
"@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/comma-dangle": [
"error",
{
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},
], // 数组和对象键值对最后一个逗号
"@stylistic/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/comma-spacing": ["off", { before: false,
after: true, },], // 使用eslint的不用ts的
// "@typescript-eslint/strict-boolean-expressions": ["error", {
// allowString: false,
// },],
"@stylistic/object-property-newline": "warn",
},
},
]);

View File

@@ -0,0 +1,151 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import pluginVue from "eslint-plugin-vue";
// import json from "@eslint/json";
import css from "@eslint/css";
import { defineConfig } from "eslint/config";
import stylistic from "@stylistic/eslint-plugin";
export default defineConfig([
{
name: "通用设置",
files: [
"src/**/*.{js,mjs,cjs,ts,mts,cts}",
"eslint.config.ts",
],
plugins: {
js,
"@stylistic": stylistic,
},
extends: ["js/recommended",],
languageOptions: {
globals: {
...globals.browser,
...globals.node, },
},
rules: {
"no-trailing-spaces": ["error", {"ignoreComments": true,},],
"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-spacing": ["error", {"before": false,
"after": true,},], // 控制行尾部分号
"quotes": ["error", "double",],
"comma-dangle": ["error", {
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},], // 数组和对象键值对最后一个逗号
"comma-style": ["error", "last",], // 逗号在行位
"no-undef-init": "error",
"no-invalid-this": "error",
"no-use-before-define": "error",
"no-shadow-restricted-names": "error", // 禁止对一些关键字或者保留字进行赋值操作比如NaN、Infinity、undefined、eval、arguments等
"brace-style": ["error", "allman", { allowSingleLine: true, },],
"prefer-const": "warn",
"space-before-function-paren": ["error", {
anonymous: "always",
named: "never",
asyncArrow: "always",
},],
"array-bracket-spacing": ["error", "never", {
singleValue: false,
objectsInArrays: false,
arraysInArrays: false,
},],
"comma-spacing": ["error", {
before: false,
after: true, },],
"@stylistic/quotes": ["error", "double",],
},
},
// vue设置
// pluginVue.configs["flat/base"],
pluginVue.configs["flat/essential"],
{
files: ["**/*.vue",],
languageOptions: {
parserOptions: { parser: tseslint.parser, },
},
// rules: {
// "vue/html-indent": ["error", 4,],
// "vue/max-attributes-per-line": ["error", {
// "singleline": {
// "max": 3,
// },
// "multiline": {
// "max": 2,
// },
// },],
// },
},
{
files: ["**/*.css",],
plugins: { css, },
language: "css/css",
extends: ["css/recommended",],
},
// Typescript设置
tseslint.configs.recommended,
{
files: ["src/**/*.ts", "eslint.config.ts",],
plugins: {
"@stylistic": stylistic,
},
rules: {
"spaced-comment": "error",
"space-before-function-paren": "off",
"semi-spacing": ["error", {"before": false,
"after": true,},],
"@typescript-eslint/no-unused-vars": "warn",
"@stylistic/indent": ["error", 4, { SwitchCase: 1, },],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/member-delimiter-style": "off",
"@stylistic/semi": ["error", "always",], // 控制行尾部分号
"@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/comma-dangle": [
"error",
{
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},
], // 数组和对象键值对最后一个逗号
"@stylistic/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/comma-spacing": ["off", { before: false,
after: true, },], // 使用eslint的不用ts的
// "@typescript-eslint/strict-boolean-expressions": ["error", {
// allowString: false,
// },],
"@stylistic/object-property-newline": "warn",
},
},
// {
// files: ["**/*.json"],
// plugins: { json },
// language: "json/json",
// extends: ["json/recommended"],
// },
// {
// files: ["**/*.jsonc"],
// plugins: { json },
// language: "json/jsonc",
// extends: ["json/recommended"],
// },
// {
// files: ["**/*.json5"],
// plugins: { json },
// language: "json/json5",
// extends: ["json/recommended"],
// },
]);

View File

@@ -0,0 +1,169 @@
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import pluginVue from "eslint-plugin-vue";
import { defineConfig } from "eslint/config";
import stylistic from "@stylistic/eslint-plugin";
export default defineConfig([
{
name: "通用设置",
files: ["**/*.{js,mjs,cjs,ts,mts,cts,vue}",],
plugins: { js, },
extends: ["js/recommended",],
languageOptions: {
globals: {
...globals.browser,
...globals.node,
},
},
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",], // 逗号在行尾
"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, },],
"array-bracket-spacing": ["error", "never", {
singleValue: false,
objectsInArrays: false,
arraysInArrays: false,
},],
"brace-style": ["error", "allman", { allowSingleLine: true, },],
"prefer-const": "warn",
"space-before-function-paren": ["error", {
anonymous: "always",
named: "never",
asyncArrow: "always",
},],
"@stylistic/no-trailing-spaces": [ // 不允许末尾的空格
"error",
{
"skipBlankLines": false,
"ignoreComments": false,
},
],
},
},
tseslint.configs.recommended,
{
files: ["src/**/*.ts", "eslint.config.ts",],
plugins: {
"@stylistic": stylistic,
},
languageOptions: {
parserOptions: { parser: tseslint.parser, },
},
rules: {
"spaced-comment": "error",
"space-before-function-paren": "off",
"semi-spacing": ["error", { before: false,
after: true, },],
"@typescript-eslint/no-unused-vars": "warn",
"@stylistic/indent": ["error", 4, { SwitchCase: 1, },],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/member-delimiter-style": "off",
"@stylistic/semi": ["error", "always",], // 控制行尾部分号
"@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/comma-dangle": [
"error",
{
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},
], // 数组和对象键值对最后一个逗号
"@stylistic/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/comma-spacing": [
"off",
{ before: false,
after: true, },
], // 使用eslint的不用ts的
// "@typescript-eslint/strict-boolean-expressions": ["error", {
// allowString: false,
// },],
"@stylistic/object-property-newline": "warn",
},
},
pluginVue.configs["flat/essential"],
pluginVue.configs["flat/strongly-recommended"],
{
files: ["**/*.vue", "**/.ts", "eslint.config.ts",],
plugins: {
"@stylistic": stylistic,
},
languageOptions: {
parserOptions: { parser: tseslint.parser, },
ecmaVersion: "latest",
sourceType: "module",
globals: globals.browser,
},
rules: {
"vue/html-indent": ["error", 4,],
// "vue/max-attributes-per-line": ["error", {
// "singleline": {
// "max": 1,
// },
// "multiline": {
// "max": 1,
// },
// },],
"spaced-comment": "error",
"space-before-function-paren": "off",
"semi-spacing": ["error", { before: false,
after: true, },],
"@typescript-eslint/no-unused-vars": "warn",
"@stylistic/indent": ["error", 4, { SwitchCase: 1, },],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/member-delimiter-style": "off",
"@stylistic/semi": ["error", "always",], // 控制行尾部分号
"@stylistic/brace-style": ["error", "allman", { allowSingleLine: true, },],
"@stylistic/comma-dangle": [
"error",
{
arrays: "always",
objects: "always",
imports: "never",
exports: "never",
functions: "never",
},
], // 数组和对象键值对最后一个逗号
"@stylistic/quotes": ["error", "double",],
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/comma-spacing": [
"off",
{ before: false,
after: true, },
], // 使用eslint的不用ts的
// "@typescript-eslint/strict-boolean-expressions": ["error", {
// allowString: false,
// },],
"@stylistic/object-property-newline": "warn",
},
},
]);

File diff suppressed because it is too large Load Diff

View File

@@ -10,31 +10,44 @@
}, },
"dependencies": { "dependencies": {
"scss": "^0.2.4", "scss": "^0.2.4",
"vue": "^3.5.24", "vue": "^3.5.27",
"vue-router": "^4.6.3" "vue-router": "^5.0.2"
}, },
"devDependencies": { "devDependencies": {
"@element-plus/icons-vue": "^2.3.2", "@element-plus/icons-vue": "^2.3.2",
"@stylistic/eslint-plugin": "^5.6.1", "@eslint/css": "^0.14.1",
"@types/node": "^24.10.1", "@eslint/js": "^9.39.2",
"@typescript-eslint/eslint-plugin": "^8.47.0", "@eslint/json": "^1.0.0",
"@typescript-eslint/parser": "^8.47.0", "@stylistic/eslint-plugin": "^5.7.1",
"@vitejs/plugin-vue": "^6.0.2", "@stylistic/eslint-plugin-js": "^4.4.1",
"@stylistic/eslint-plugin-jsx": "^4.4.1",
"@stylistic/eslint-plugin-plus": "^4.4.1",
"@stylistic/eslint-plugin-ts": "^4.4.1",
"@types/node": "^25.2.0",
"@typescript-eslint/eslint-plugin": "^8.54.0",
"@typescript-eslint/parser": "^8.54.0",
"@vitejs/plugin-vue": "^6.0.4",
"@vue-office/docx": "^1.6.3", "@vue-office/docx": "^1.6.3",
"@vue-office/excel": "^1.7.14", "@vue-office/excel": "^1.7.14",
"@vue-office/pdf": "^2.0.10", "@vue-office/pdf": "^2.0.10",
"@vue/tsconfig": "^0.8.1", "@vue/tsconfig": "^0.8.1",
"axios": "^1.13.2", "axios": "^1.13.4",
"element-plus": "^2.11.8", "element-plus": "^2.13.2",
"eslint": "^9.39.1", "eslint": "^9.39.2",
"eslint-plugin-vue": "^10.6.0", "eslint-config-prettier": "^10.1.8",
"eslint-plugin-vue": "^10.7.0",
"globals": "^17.3.0",
"jiti": "^2.6.1",
"lodash": "^4.17.23",
"lodash-es": "^4.17.23",
"path": "^0.12.7", "path": "^0.12.7",
"sass": "^1.94.2", "sass": "^1.97.3",
"typescript": "~5.9.3", "typescript": "~5.9.3",
"vite": "^7.2.4", "typescript-eslint": "^8.54.0",
"vite": "^7.3.1",
"vue-demi": "^0.14.10", "vue-demi": "^0.14.10",
"vue-eslint-parser": "^10.2.0", "vue-eslint-parser": "^10.2.0",
"vue-pdf-embed": "^2.1.3", "vue-pdf-embed": "^2.1.3",
"vue-tsc": "^3.1.5" "vue-tsc": "^3.2.4"
} }
} }

View File

@@ -5,8 +5,8 @@
target="_blank" target="_blank"
> >
<img <img
src="/vite.svg"
class="logo" class="logo"
src="/vite.svg"
alt="Vite logo" alt="Vite logo"
> >
</a> </a>

View File

@@ -1,9 +1,3 @@
<!--
author: Kane Wang <wangkane@qq.com>
date: 2025-10-14 15:57:34
component: AppMain
Copyright © CPIC All rights reserved
-->
<template> <template>
<router-view /> <router-view />
</template> </template>
@@ -11,7 +5,7 @@ Copyright © CPIC All rights reserved
export default { export default {
name: "AppMain", name: "AppMain",
components: [], components: [],
setup() {}, setup() { },
}; };
</script> </script>
<style lang="sass" scoped></style> <style lang="sass" scoped></style>

View File

@@ -1,12 +1,3 @@
<!--
* @Author: Kane
* @Date: 2023-03-23 15:07:31
* @LastEditors: Kane
* @FilePath: /task_schedule/src/layout/Index.vue
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
-->
<template> <template>
<el-container class="layout-container"> <el-container class="layout-container">
<el-header class="layout-header"> <el-header class="layout-header">

View File

@@ -1,6 +1,6 @@
<!-- <!--
author: Kane Wang <wangkane@qq.com> author: Kane Wang <wangkane@qq.com>
date: 2025-10-23 15:32:30 date: 2025-10-23 17:52:01
component: Header component: Header
Copyright © CPIC All rights reserved Copyright © CPIC All rights reserved
--> -->

View File

@@ -12,6 +12,7 @@ const API_URL= {
URL_UPLOAD_FILE: import.meta.env.VITE_APP_URL_UPLOAD_FILE, URL_UPLOAD_FILE: import.meta.env.VITE_APP_URL_UPLOAD_FILE,
URL_MOVE_FILE: import.meta.env.VITE_APP_URL_MOVE_FILE, URL_MOVE_FILE: import.meta.env.VITE_APP_URL_MOVE_FILE,
URL_PREFIX: import.meta.env.VITE_APP_URL_PREFIX, URL_PREFIX: import.meta.env.VITE_APP_URL_PREFIX,
URL_ADD_NEW_REGULATORY: import.meta.env.VITE_APP_URL_ADD_NEW_REGULATORY,
}; };
console.log( API_URL ); console.log( API_URL );

View File

@@ -0,0 +1,72 @@
/**
* @Author: Kane Wang <wangkane@qq.com>
* @Date: 2026-01-05 10:42:42
* @LastEditors: Kane Wang
* @LastModified: 2026-02-04 15:37:20
* @FilePath: src/utils/regulatory_utils.ts
* @Description:
*
* Copyright (c) 2025 by Kane All rights reserved
*/
import { service } from "@/utils/api/request.ts";
import { API_URL } from "@/utils/config.ts";
import { type RegulatoryData, type RegulatoryFile } from "@/types/regulatory/regulatory.ts";
interface AddNewRegulatoryResponse
{
success: boolean;
message: string;
}
interface Render {
( resonse: AddNewRegulatoryResponse ) :void, }
/**
*
* @param regulatory RegulatoryData类型制度对象用于发送请求。
* @param render 回调函数,请求成功后调用。
*/
function addNewRegulatory( regulatory: RegulatoryData, render: Render ): void
{
// const url = API_URL.URL_ADD_NEW_REGULATORY;
// 响应对象
const resp: AddNewRegulatoryResponse = {
success: false,
message: "",
};
service.request({
method:"post",
url: API_URL.URL_ADD_NEW_REGULATORY,
data: regulatory,
})
.then(( response ):void=>
{
const data = response.data ?? {};
resp.success = data.success ?? false;
resp.message = data.message ?? "服务器没有返回调用结果消息,请检查日志!";
if ( render !== undefined )
{
render( resp );
}
})
.catch(( error ): void=>
{
resp.success = false;
resp.message = String( error );
if ( render !== undefined )
{
render( resp );
}
});
}
export {
addNewRegulatory,
type AddNewRegulatoryResponse,
type Render
};

View File

@@ -162,7 +162,8 @@ Copyright © CPIC All rights reserved
<script lang="ts"> <script lang="ts">
import {reactive, ref} from "vue"; import {reactive, ref} from "vue";
import { type UploadProps, type UploadFile, type UploadFiles, ElMessage, ElMessageBox } from "element-plus"; import { type UploadProps, type UploadFile, type UploadFiles, ElMessage, ElMessageBox } from "element-plus";
import {type RegulatoryData, type RegulatoryFile} from "@/types/regulatory/regulatory.ts"; import { type RegulatoryData, type RegulatoryFile} from "@/types/regulatory/regulatory.ts";
import { addNewRegulatory, type AddNewRegulatoryResponse, type Render} from "@/utils/regulatory_utils.ts";
import { type UploadedFile, type UploadFileResponse } from "@/types/upload_file.ts"; import { type UploadedFile, type UploadFileResponse } from "@/types/upload_file.ts";
import {API_URL} from "@/utils/config.ts"; import {API_URL} from "@/utils/config.ts";
import { getFileType } from "@/utils/utils"; import { getFileType } from "@/utils/utils";
@@ -217,6 +218,12 @@ export default {
fileURL: "", fileURL: "",
}); });
const render: Render = function ( response: AddNewRegulatoryResponse ) :void
{
// if ( response.success === true )
// { }
};
const headerCellStyle = reactive( const headerCellStyle = reactive(
{ {
textAlign: "center", textAlign: "center",