一期代码提交
@ -0,0 +1,21 @@
|
|||||||
|
node_modules
|
||||||
|
.DS_Store
|
||||||
|
dist
|
||||||
|
dist-ssr
|
||||||
|
*.local
|
||||||
|
.eslintcache
|
||||||
|
report.html
|
||||||
|
|
||||||
|
yarn.lock
|
||||||
|
npm-debug.log*
|
||||||
|
.pnpm-error.log*
|
||||||
|
.pnpm-debug.log
|
||||||
|
tests/**/coverage/
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.idea
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
tsconfig.tsbuildinfo
|
@ -0,0 +1,14 @@
|
|||||||
|
# http://editorconfig.org
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
insert_final_newline = false
|
||||||
|
trim_trailing_whitespace = false
|
@ -0,0 +1,11 @@
|
|||||||
|
public
|
||||||
|
dist
|
||||||
|
*.d.ts
|
||||||
|
/src/assets
|
||||||
|
package.json
|
||||||
|
.eslintrc.js
|
||||||
|
.prettierrc.js
|
||||||
|
commitlint.config.js
|
||||||
|
postcss.config.js
|
||||||
|
tailwind.config.js
|
||||||
|
stylelint.config.js
|
@ -0,0 +1,121 @@
|
|||||||
|
module.exports = {
|
||||||
|
root: true,
|
||||||
|
env: {
|
||||||
|
node: true
|
||||||
|
},
|
||||||
|
globals: {
|
||||||
|
// Ref sugar (take 2)
|
||||||
|
$: "readonly",
|
||||||
|
$$: "readonly",
|
||||||
|
$ref: "readonly",
|
||||||
|
$shallowRef: "readonly",
|
||||||
|
$computed: "readonly",
|
||||||
|
|
||||||
|
// index.d.ts
|
||||||
|
// global.d.ts
|
||||||
|
Fn: "readonly",
|
||||||
|
PromiseFn: "readonly",
|
||||||
|
RefType: "readonly",
|
||||||
|
LabelValueOptions: "readonly",
|
||||||
|
EmitType: "readonly",
|
||||||
|
TargetContext: "readonly",
|
||||||
|
ComponentElRef: "readonly",
|
||||||
|
ComponentRef: "readonly",
|
||||||
|
ElRef: "readonly",
|
||||||
|
global: "readonly",
|
||||||
|
ForDataType: "readonly",
|
||||||
|
ComponentRoutes: "readonly",
|
||||||
|
|
||||||
|
// script setup
|
||||||
|
defineProps: "readonly",
|
||||||
|
defineEmits: "readonly",
|
||||||
|
defineExpose: "readonly",
|
||||||
|
withDefaults: "readonly",
|
||||||
|
DC: false
|
||||||
|
},
|
||||||
|
extends: [
|
||||||
|
"plugin:vue/vue3-essential",
|
||||||
|
"eslint:recommended",
|
||||||
|
"@vue/typescript/recommended",
|
||||||
|
"@vue/prettier",
|
||||||
|
"@vue/eslint-config-typescript"
|
||||||
|
],
|
||||||
|
parser: "vue-eslint-parser",
|
||||||
|
parserOptions: {
|
||||||
|
parser: "@typescript-eslint/parser",
|
||||||
|
ecmaVersion: 2020,
|
||||||
|
sourceType: "module",
|
||||||
|
jsxPragma: "React",
|
||||||
|
ecmaFeatures: {
|
||||||
|
jsx: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: ["*.ts", "*.vue"],
|
||||||
|
rules: {
|
||||||
|
"no-undef": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ["*.vue"],
|
||||||
|
parser: "vue-eslint-parser",
|
||||||
|
parserOptions: {
|
||||||
|
parser: "@typescript-eslint/parser",
|
||||||
|
extraFileExtensions: [".vue"],
|
||||||
|
ecmaVersion: "latest",
|
||||||
|
ecmaFeatures: {
|
||||||
|
jsx: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
"no-undef": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
rules: {
|
||||||
|
"vue/no-v-html": "off",
|
||||||
|
"vue/require-default-prop": "off",
|
||||||
|
"vue/require-explicit-emits": "off",
|
||||||
|
"vue/multi-word-component-names": "off",
|
||||||
|
"@typescript-eslint/no-explicit-any": "off", // any
|
||||||
|
"no-debugger": "off",
|
||||||
|
"@typescript-eslint/explicit-module-boundary-types": "off", // setup()
|
||||||
|
"@typescript-eslint/ban-types": "off",
|
||||||
|
"@typescript-eslint/ban-ts-comment": "off",
|
||||||
|
"@typescript-eslint/no-empty-function": "off",
|
||||||
|
"@typescript-eslint/no-non-null-assertion": "off",
|
||||||
|
"vue/html-self-closing": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
html: {
|
||||||
|
void: "always",
|
||||||
|
normal: "always",
|
||||||
|
component: "always"
|
||||||
|
},
|
||||||
|
svg: "always",
|
||||||
|
math: "always"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@typescript-eslint/no-unused-vars": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
argsIgnorePattern: "^_",
|
||||||
|
varsIgnorePattern: "^_"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no-unused-vars": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
argsIgnorePattern: "^_",
|
||||||
|
varsIgnorePattern: "^_"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"prettier/prettier": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
endOfLine: "auto"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"default": true,
|
||||||
|
"MD003": false,
|
||||||
|
"MD033": false,
|
||||||
|
"MD013": false,
|
||||||
|
"MD001": false,
|
||||||
|
"MD025": false,
|
||||||
|
"MD024": false,
|
||||||
|
"MD007": { "indent": 4 },
|
||||||
|
"no-hard-tabs": false
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
shamefully-hoist=true
|
||||||
|
strict-peer-dependencies=false
|
||||||
|
shell-emulator=true
|
@ -0,0 +1,6 @@
|
|||||||
|
module.exports = {
|
||||||
|
bracketSpacing: true,
|
||||||
|
singleQuote: false,
|
||||||
|
arrowParens: "avoid",
|
||||||
|
trailingComma: "none"
|
||||||
|
};
|
@ -0,0 +1,4 @@
|
|||||||
|
/dist/*
|
||||||
|
/public/*
|
||||||
|
public/*
|
||||||
|
src/style/reset.scss
|
@ -0,0 +1,20 @@
|
|||||||
|
FROM node:16-alpine as build-stage
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
RUN corepack enable
|
||||||
|
RUN corepack prepare pnpm@7.32.1 --activate
|
||||||
|
|
||||||
|
RUN npm config set registry https://registry.npmmirror.com
|
||||||
|
|
||||||
|
COPY .npmrc package.json pnpm-lock.yaml ./
|
||||||
|
RUN pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
RUN pnpm build
|
||||||
|
|
||||||
|
FROM nginx:stable-alpine as production-stage
|
||||||
|
|
||||||
|
COPY --from=build-stage /app/dist /usr/share/nginx/html
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
CMD ["nginx", "-g", "daemon off;"]
|
@ -0,0 +1,31 @@
|
|||||||
|
/** 处理环境变量 */
|
||||||
|
const warpperEnv = (envConf: Recordable): ViteEnv => {
|
||||||
|
/** 此处为默认值 */
|
||||||
|
const ret: ViteEnv = {
|
||||||
|
VITE_PORT: 8848,
|
||||||
|
VITE_PUBLIC_PATH: "",
|
||||||
|
VITE_ROUTER_HISTORY: "",
|
||||||
|
VITE_CDN: false,
|
||||||
|
VITE_HIDE_HOME: "false",
|
||||||
|
VITE_COMPRESSION: "none"
|
||||||
|
};
|
||||||
|
|
||||||
|
for (const envName of Object.keys(envConf)) {
|
||||||
|
let realName = envConf[envName].replace(/\\n/g, "\n");
|
||||||
|
realName =
|
||||||
|
realName === "true" ? true : realName === "false" ? false : realName;
|
||||||
|
|
||||||
|
if (envName === "VITE_PORT") {
|
||||||
|
realName = Number(realName);
|
||||||
|
}
|
||||||
|
ret[envName] = realName;
|
||||||
|
if (typeof realName === "string") {
|
||||||
|
process.env[envName] = realName;
|
||||||
|
} else if (typeof realName === "object") {
|
||||||
|
process.env[envName] = JSON.stringify(realName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
|
||||||
|
export { warpperEnv };
|
@ -0,0 +1,56 @@
|
|||||||
|
import { cdn } from "./cdn";
|
||||||
|
import vue from "@vitejs/plugin-vue";
|
||||||
|
import { viteBuildInfo } from "./info";
|
||||||
|
import svgLoader from "vite-svg-loader";
|
||||||
|
import vueJsx from "@vitejs/plugin-vue-jsx";
|
||||||
|
import { viteMockServe } from "vite-plugin-mock";
|
||||||
|
import { configCompressPlugin } from "./compress";
|
||||||
|
// import ElementPlus from "unplugin-element-plus/vite";
|
||||||
|
import { visualizer } from "rollup-plugin-visualizer";
|
||||||
|
import removeConsole from "vite-plugin-remove-console";
|
||||||
|
import themePreprocessorPlugin from "@pureadmin/theme";
|
||||||
|
import { genScssMultipleScopeVars } from "../src/layout/theme";
|
||||||
|
|
||||||
|
export function getPluginsList(
|
||||||
|
command: string,
|
||||||
|
VITE_CDN: boolean,
|
||||||
|
VITE_COMPRESSION: ViteCompression
|
||||||
|
) {
|
||||||
|
const prodMock = true;
|
||||||
|
const lifecycle = process.env.npm_lifecycle_event;
|
||||||
|
return [
|
||||||
|
vue(),
|
||||||
|
// jsx、tsx语法支持
|
||||||
|
vueJsx(),
|
||||||
|
VITE_CDN ? cdn : null,
|
||||||
|
configCompressPlugin(VITE_COMPRESSION),
|
||||||
|
// 线上环境删除console
|
||||||
|
removeConsole({ external: ["src/assets/iconfont/iconfont.js"] }),
|
||||||
|
viteBuildInfo(),
|
||||||
|
// 自定义主题
|
||||||
|
themePreprocessorPlugin({
|
||||||
|
scss: {
|
||||||
|
multipleScopeVars: genScssMultipleScopeVars(),
|
||||||
|
extract: true
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
// svg组件化支持
|
||||||
|
svgLoader(),
|
||||||
|
// ElementPlus({}),
|
||||||
|
// mock支持
|
||||||
|
viteMockServe({
|
||||||
|
mockPath: "mock",
|
||||||
|
localEnabled: command === "serve",
|
||||||
|
prodEnabled: command !== "serve" && prodMock,
|
||||||
|
injectCode: `
|
||||||
|
import { setupProdMockServer } from './mockProdServer';
|
||||||
|
setupProdMockServer();
|
||||||
|
`,
|
||||||
|
logger: false
|
||||||
|
}),
|
||||||
|
// 打包分析
|
||||||
|
lifecycle === "report"
|
||||||
|
? visualizer({ open: true, brotliSize: true, filename: "report.html" })
|
||||||
|
: null
|
||||||
|
];
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
module.exports = {
|
||||||
|
ignores: [commit => commit.includes("init")],
|
||||||
|
extends: ["@commitlint/config-conventional"],
|
||||||
|
rules: {
|
||||||
|
"body-leading-blank": [2, "always"],
|
||||||
|
"footer-leading-blank": [1, "always"],
|
||||||
|
"header-max-length": [2, "always", 108],
|
||||||
|
"subject-empty": [2, "never"],
|
||||||
|
"type-empty": [2, "never"],
|
||||||
|
"type-enum": [
|
||||||
|
2,
|
||||||
|
"always",
|
||||||
|
[
|
||||||
|
"feat",
|
||||||
|
"fix",
|
||||||
|
"perf",
|
||||||
|
"style",
|
||||||
|
"docs",
|
||||||
|
"test",
|
||||||
|
"refactor",
|
||||||
|
"build",
|
||||||
|
"ci",
|
||||||
|
"chore",
|
||||||
|
"revert",
|
||||||
|
"wip",
|
||||||
|
"workflow",
|
||||||
|
"types",
|
||||||
|
"release"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||||
|
<meta name="renderer" content="webkit" />
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
|
||||||
|
<title>智能审讯机器人</title>
|
||||||
|
<link rel="icon" href="/favicon.ico" />
|
||||||
|
<script>
|
||||||
|
window.process = {};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="app">
|
||||||
|
<style>
|
||||||
|
html,
|
||||||
|
body,
|
||||||
|
#app {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loader,
|
||||||
|
.loader::before,
|
||||||
|
.loader::after {
|
||||||
|
width: 2.5em;
|
||||||
|
height: 2.5em;
|
||||||
|
border-radius: 50%;
|
||||||
|
animation: load-animation 1.8s infinite ease-in-out;
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loader {
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
margin: 80px auto;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #406eeb;
|
||||||
|
text-indent: -9999em;
|
||||||
|
transform: translateZ(0);
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
animation-delay: -0.16s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loader::before,
|
||||||
|
.loader::after {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
|
||||||
|
.loader::before {
|
||||||
|
left: -3.5em;
|
||||||
|
animation-delay: -0.32s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loader::after {
|
||||||
|
left: 3.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes load-animation {
|
||||||
|
|
||||||
|
0%,
|
||||||
|
80%,
|
||||||
|
100% {
|
||||||
|
box-shadow: 0 2.5em 0 -1.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
40% {
|
||||||
|
box-shadow: 0 2.5em 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="loader"></div>
|
||||||
|
</div>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -0,0 +1,66 @@
|
|||||||
|
// 根据角色动态生成路由
|
||||||
|
import { MockMethod } from "vite-plugin-mock";
|
||||||
|
|
||||||
|
export default [
|
||||||
|
{
|
||||||
|
url: "/login",
|
||||||
|
method: "post",
|
||||||
|
response: ({ body }) => {
|
||||||
|
if (body.username === "admin" && body.password === "admin123") {
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
data: {
|
||||||
|
username: "admin",
|
||||||
|
// 一个用户可能有多个角色
|
||||||
|
roles: ["admin"],
|
||||||
|
accessToken: "eyJhbGciOiJIUzUxMiJ9.admin",
|
||||||
|
refreshToken: "eyJhbGciOiJIUzUxMiJ9.adminRefresh",
|
||||||
|
expires: "2023/10/30 00:00:00"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else if (body.username === "common" && body.password === "common123") {
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
data: {
|
||||||
|
username: "common",
|
||||||
|
// 一个用户可能有多个角色
|
||||||
|
roles: ["common"],
|
||||||
|
accessToken: "eyJhbGciOiJIUzUxMiJ9.common",
|
||||||
|
refreshToken: "eyJhbGciOiJIUzUxMiJ9.commonRefresh",
|
||||||
|
expires: "2023/10/30 00:00:00"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
msg: "用户名密码错误"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// if (body.username === "admin") {
|
||||||
|
// return {
|
||||||
|
// success: true,
|
||||||
|
// data: {
|
||||||
|
// username: "admin",
|
||||||
|
// // 一个用户可能有多个角色
|
||||||
|
// roles: ["admin"],
|
||||||
|
// accessToken: "eyJhbGciOiJIUzUxMiJ9.admin",
|
||||||
|
// refreshToken: "eyJhbGciOiJIUzUxMiJ9.adminRefresh",
|
||||||
|
// expires: "2023/10/30 00:00:00"
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// } else {
|
||||||
|
// return {
|
||||||
|
// success: true,
|
||||||
|
// data: {
|
||||||
|
// username: "common",
|
||||||
|
// // 一个用户可能有多个角色
|
||||||
|
// roles: ["common"],
|
||||||
|
// accessToken: "eyJhbGciOiJIUzUxMiJ9.common",
|
||||||
|
// refreshToken: "eyJhbGciOiJIUzUxMiJ9.commonRefresh",
|
||||||
|
// expires: "2023/10/30 00:00:00"
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
] as MockMethod[];
|
@ -0,0 +1,27 @@
|
|||||||
|
import { MockMethod } from "vite-plugin-mock";
|
||||||
|
|
||||||
|
// 模拟刷新token接口
|
||||||
|
export default [
|
||||||
|
{
|
||||||
|
url: "/refreshToken",
|
||||||
|
method: "post",
|
||||||
|
response: ({ body }) => {
|
||||||
|
if (body.refreshToken) {
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
data: {
|
||||||
|
accessToken: "eyJhbGciOiJIUzUxMiJ9.newAdmin",
|
||||||
|
refreshToken: "eyJhbGciOiJIUzUxMiJ9.newAdminRefresh",
|
||||||
|
// `expires`选择这种日期格式是为了方便调试,后端直接设置时间戳或许更方便(每次都应该递增)。如果后端返回的是时间戳格式,前端开发请来到这个目录`src/utils/auth.ts`,把第`38`行的代码换成expires = data.expires即可。
|
||||||
|
expires: "2023/10/30 23:59:59"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
data: {}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
] as MockMethod[];
|
@ -0,0 +1,140 @@
|
|||||||
|
{
|
||||||
|
"name": "test-project",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"dev": "NODE_OPTIONS=--max-old-space-size=4096 vite",
|
||||||
|
"serve": "pnpm dev",
|
||||||
|
"build": "rimraf dist && NODE_OPTIONS=--max-old-space-size=8192 vite build",
|
||||||
|
"build:staging": "rimraf dist && vite build --mode staging",
|
||||||
|
"report": "rimraf dist && vite build",
|
||||||
|
"preview": "vite preview",
|
||||||
|
"preview:build": "pnpm build && vite preview",
|
||||||
|
"typecheck": "tsc --noEmit && vue-tsc --noEmit --skipLibCheck",
|
||||||
|
"svgo": "svgo -f src/assets/svg -o src/assets/svg",
|
||||||
|
"cloc": "NODE_OPTIONS=--max-old-space-size=4096 cloc . --exclude-dir=node_modules --exclude-lang=YAML",
|
||||||
|
"clean:cache": "rimraf node_modules && rimraf .eslintcache && pnpm install",
|
||||||
|
"lint:eslint": "eslint --cache --max-warnings 0 \"{src,mock,build}/**/*.{vue,js,ts,tsx}\" --fix",
|
||||||
|
"lint:prettier": "prettier --write \"src/**/*.{js,ts,json,tsx,css,scss,vue,html,md}\"",
|
||||||
|
"lint:stylelint": "stylelint \"**/*.{html,vue,css,scss}\" --fix --cache --cache-location node_modules/.cache/stylelint/",
|
||||||
|
"lint:lint-staged": "lint-staged -c ./.husky/lintstagedrc.js",
|
||||||
|
"lint:pretty": "pretty-quick --staged",
|
||||||
|
"lint": "pnpm lint:eslint && pnpm lint:prettier && pnpm lint:stylelint",
|
||||||
|
"prepare": "husky install",
|
||||||
|
"preinstall": "npx only-allow pnpm"
|
||||||
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"> 1%",
|
||||||
|
"not ie 11",
|
||||||
|
"not op_mini all"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"@pureadmin/descriptions": "^1.1.1",
|
||||||
|
"@pureadmin/table": "^2.3.2",
|
||||||
|
"@pureadmin/utils": "^1.9.6",
|
||||||
|
"@vue/composition-api": "^1.7.2",
|
||||||
|
"@vueuse/core": "^10.2.0",
|
||||||
|
"@vueuse/motion": "^2.0.0",
|
||||||
|
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||||
|
"animate.css": "^4.1.1",
|
||||||
|
"axios": "^1.4.0",
|
||||||
|
"dayjs": "^1.11.8",
|
||||||
|
"element-plus": "2.3.6",
|
||||||
|
"js-audio-recorder": "^1.0.7",
|
||||||
|
"js-cookie": "^3.0.5",
|
||||||
|
"lodash.debounce": "^4.0.8",
|
||||||
|
"mitt": "^3.0.0",
|
||||||
|
"nprogress": "^0.2.0",
|
||||||
|
"path": "^0.12.7",
|
||||||
|
"pinia": "^2.1.4",
|
||||||
|
"pinyin-pro": "^3.15.2",
|
||||||
|
"qs": "^6.11.2",
|
||||||
|
"responsive-storage": "^2.2.0",
|
||||||
|
"sortablejs": "^1.15.0",
|
||||||
|
"uuid": "^9.0.1",
|
||||||
|
"vue": "^3.3.4",
|
||||||
|
"vue-router": "^4.2.2",
|
||||||
|
"vue-types": "^5.1.0",
|
||||||
|
"vue3-seamless-scroll": "^2.0.1",
|
||||||
|
"wangeditor": "^4.7.15"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@commitlint/cli": "^17.6.6",
|
||||||
|
"@commitlint/config-conventional": "^17.6.6",
|
||||||
|
"@iconify-icons/ant-design": "^1.2.7",
|
||||||
|
"@iconify-icons/ep": "^1.2.12",
|
||||||
|
"@iconify-icons/icon-park-outline": "^1.2.11",
|
||||||
|
"@iconify-icons/ri": "^1.2.9",
|
||||||
|
"@iconify/vue": "^4.1.1",
|
||||||
|
"@pureadmin/theme": "^3.1.0",
|
||||||
|
"@types/js-cookie": "^3.0.3",
|
||||||
|
"@types/mockjs": "^1.0.7",
|
||||||
|
"@types/node": "^20.3.1",
|
||||||
|
"@types/nprogress": "0.2.0",
|
||||||
|
"@types/qs": "^6.9.7",
|
||||||
|
"@types/sortablejs": "^1.15.1",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^5.60.0",
|
||||||
|
"@typescript-eslint/parser": "^5.60.0",
|
||||||
|
"@vitejs/plugin-vue": "^4.2.3",
|
||||||
|
"@vitejs/plugin-vue-jsx": "^3.0.1",
|
||||||
|
"@vue/eslint-config-prettier": "^7.1.0",
|
||||||
|
"@vue/eslint-config-typescript": "^11.0.3",
|
||||||
|
"autoprefixer": "^10.4.14",
|
||||||
|
"cloc": "^2.11.0",
|
||||||
|
"cssnano": "^6.0.1",
|
||||||
|
"eslint": "^8.43.0",
|
||||||
|
"eslint-plugin-prettier": "^4.2.1",
|
||||||
|
"eslint-plugin-vue": "^9.15.1",
|
||||||
|
"husky": "^8.0.3",
|
||||||
|
"lint-staged": "^13.2.2",
|
||||||
|
"picocolors": "^1.0.0",
|
||||||
|
"postcss": "^8.4.24",
|
||||||
|
"postcss-html": "^1.5.0",
|
||||||
|
"postcss-import": "^15.1.0",
|
||||||
|
"postcss-scss": "^4.0.6",
|
||||||
|
"prettier": "^2.8.8",
|
||||||
|
"pretty-quick": "^3.1.3",
|
||||||
|
"rimraf": "^5.0.1",
|
||||||
|
"rollup-plugin-visualizer": "^5.9.2",
|
||||||
|
"sass": "^1.63.6",
|
||||||
|
"sass-loader": "^13.3.2",
|
||||||
|
"stylelint": "^15.9.0",
|
||||||
|
"stylelint-config-html": "^1.1.0",
|
||||||
|
"stylelint-config-recess-order": "^4.2.0",
|
||||||
|
"stylelint-config-recommended": "^12.0.0",
|
||||||
|
"stylelint-config-recommended-scss": "^12.0.0",
|
||||||
|
"stylelint-config-recommended-vue": "^1.4.0",
|
||||||
|
"stylelint-config-standard": "^33.0.0",
|
||||||
|
"stylelint-config-standard-scss": "^9.0.0",
|
||||||
|
"stylelint-order": "^6.0.3",
|
||||||
|
"stylelint-prettier": "^3.0.0",
|
||||||
|
"stylelint-scss": "^5.0.1",
|
||||||
|
"svgo": "^3.0.2",
|
||||||
|
"tailwindcss": "^3.3.2",
|
||||||
|
"terser": "^5.18.1",
|
||||||
|
"typescript": "5.0.4",
|
||||||
|
"vite": "^4.3.9",
|
||||||
|
"vite-plugin-cdn-import": "^0.3.5",
|
||||||
|
"vite-plugin-compression": "^0.5.1",
|
||||||
|
"vite-plugin-mock": "2.9.6",
|
||||||
|
"vite-plugin-remove-console": "^2.1.1",
|
||||||
|
"vite-svg-loader": "^4.0.0",
|
||||||
|
"vue-eslint-parser": "^9.3.1",
|
||||||
|
"vue-tsc": "^1.8.1"
|
||||||
|
},
|
||||||
|
"pnpm": {
|
||||||
|
"peerDependencyRules": {
|
||||||
|
"ignoreMissing": [
|
||||||
|
"rollup",
|
||||||
|
"webpack",
|
||||||
|
"core-js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"allowedDeprecatedVersions": {
|
||||||
|
"sourcemap-codec": "*",
|
||||||
|
"w3c-hr-time": "*",
|
||||||
|
"stable": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
module.exports = {
|
||||||
|
plugins: {
|
||||||
|
"postcss-import": {},
|
||||||
|
"tailwindcss/nesting": {},
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {},
|
||||||
|
...(process.env.NODE_ENV === "production" ? { cssnano: {} } : {})
|
||||||
|
}
|
||||||
|
};
|
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,11 @@
|
|||||||
|
<svg width="30" height="32" viewBox="0 0 30 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M29.262 16.7252L23.5229 11.0259L20.9578 8.47347C20.9217 8.43538 20.8781 8.40503 20.8298 8.38428C20.7815 8.36354 20.7294 8.35284 20.6767 8.35284C20.6241 8.35284 20.572 8.36354 20.5237 8.38428C20.4753 8.40503 20.4318 8.43538 20.3956 8.47347L9.11646 19.6972C9.0244 19.7875 8.90027 19.8382 8.77094 19.8382C8.6416 19.8382 8.51747 19.7875 8.42542 19.6972L6.08291 17.3662C5.99207 17.2746 5.94114 17.151 5.94114 17.0224C5.94114 16.8937 5.99207 16.7701 6.08291 16.6785L15.4529 7.3546C15.5254 7.27699 15.5656 7.17499 15.5656 7.06906C15.5656 6.96313 15.5254 6.86112 15.4529 6.78351L12.9816 4.3826C12.9455 4.3445 12.9019 4.31415 12.8536 4.29341C12.8052 4.27267 12.7531 4.26196 12.7005 4.26196C12.6479 4.26196 12.5958 4.27267 12.5474 4.29341C12.4991 4.31415 12.4555 4.3445 12.4194 4.3826L0.121232 16.6203C0.0829476 16.6562 0.0524462 16.6996 0.0315998 16.7477C0.0107533 16.7958 0 16.8476 0 16.9C0 16.9524 0.0107533 17.0042 0.0315998 17.0523C0.0524462 17.1004 0.0829476 17.1437 0.121232 17.1797L5.83695 22.8906L8.40199 25.4314C8.47999 25.5035 8.5825 25.5435 8.68895 25.5435C8.7954 25.5435 8.89791 25.5035 8.97591 25.4314L20.2551 14.2077C20.2997 14.1633 20.3526 14.1281 20.4109 14.104C20.4692 14.08 20.5317 14.0676 20.5947 14.0676C20.6578 14.0676 20.7203 14.08 20.7786 14.104C20.8369 14.1281 20.8898 14.1633 20.9344 14.2077L23.2769 16.5387C23.3245 16.5813 23.3626 16.6334 23.3887 16.6916C23.4148 16.7499 23.4283 16.8129 23.4283 16.8767C23.4283 16.9404 23.4148 17.0035 23.3887 17.0617C23.3626 17.1199 23.3245 17.172 23.2769 17.2147L11.9977 28.45C11.9234 28.5243 11.8816 28.6249 11.8816 28.7297C11.8816 28.8346 11.9234 28.9352 11.9977 29.0094L14.4339 31.422C14.4701 31.4601 14.5136 31.4904 14.562 31.5112C14.6103 31.5319 14.6624 31.5426 14.715 31.5426C14.7677 31.5426 14.8198 31.5319 14.8681 31.5112C14.9164 31.4904 14.96 31.4601 14.9961 31.422L29.262 17.2962C29.3345 17.2186 29.3747 17.1166 29.3747 17.0107C29.3747 16.9048 29.3345 16.8028 29.262 16.7252Z" fill="url(#paint0_linear_562_16235)"/>
|
||||||
|
<path d="M17.7134 1.99314L13.86 2.79733C13.839 2.80347 13.8199 2.81483 13.8045 2.83035C13.7892 2.84587 13.778 2.86504 13.7722 2.88603C13.7663 2.90703 13.7659 2.92917 13.771 2.95035C13.7762 2.97154 13.7866 2.99108 13.8015 3.00712L16.8467 6.02574C16.8572 6.04261 16.8719 6.05653 16.8893 6.06618C16.9067 6.07583 16.9263 6.0809 16.9463 6.0809C16.9662 6.0809 16.9858 6.07583 17.0032 6.06618C17.0207 6.05653 17.0353 6.04261 17.0458 6.02574L17.8657 2.19128C17.884 2.16893 17.8942 2.14109 17.8947 2.11226C17.8951 2.08343 17.8858 2.05529 17.8682 2.03238C17.8506 2.00948 17.8257 1.99315 17.7977 1.98603C17.7696 1.97891 17.7399 1.98141 17.7134 1.99314Z" fill="#C50F08"/>
|
||||||
|
<path d="M19.5056 0.0356277L14.5278 1.35263C14.4812 1.36466 14.4387 1.3889 14.4047 1.42283C14.3707 1.45675 14.3464 1.49912 14.3345 1.54553C14.3225 1.59193 14.3233 1.64068 14.3367 1.6867C14.3501 1.73271 14.3756 1.77431 14.4107 1.80717L18.0533 5.43185C18.0849 5.46742 18.1258 5.49356 18.1715 5.50735C18.2171 5.52115 18.2657 5.52205 18.3119 5.50996C18.358 5.49788 18.3999 5.47328 18.4328 5.43891C18.4657 5.40454 18.4884 5.36175 18.4983 5.3153L19.8921 0.361966C19.9116 0.310297 19.9145 0.253924 19.9005 0.200539C19.8865 0.147153 19.8564 0.0993544 19.8141 0.0636642C19.7718 0.027974 19.7195 0.00612861 19.6643 0.00111125C19.6091 -0.00390611 19.5537 0.00814786 19.5056 0.0356277Z" fill="#FAEC18"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_562_16235" x1="12.2203" y1="25.3498" x2="17.9654" y2="5.36981" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#3785B7"/>
|
||||||
|
<stop offset="0.69" stop-color="#2F3E8F"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 27 KiB |
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"Version": "1.0.0",
|
||||||
|
"Title": "Admin",
|
||||||
|
"FixedHeader": true,
|
||||||
|
"HiddenSideBar": false,
|
||||||
|
"MultiTagsCache": false,
|
||||||
|
"KeepAlive": false,
|
||||||
|
"Layout": "vertical",
|
||||||
|
"Theme": "default",
|
||||||
|
"DarkMode": false,
|
||||||
|
"Grey": false,
|
||||||
|
"Weak": false,
|
||||||
|
"HideTabs": true,
|
||||||
|
"SidebarStatus": true,
|
||||||
|
"EpThemeColor": "#4287ff",
|
||||||
|
"ShowLogo": true,
|
||||||
|
"ShowModel": "smart",
|
||||||
|
"MenuArrowIconNoTransition": true,
|
||||||
|
"CachingAsyncRoutes": false,
|
||||||
|
"TooltipEffect": "light",
|
||||||
|
"ResponsiveStorageNameSpace": "responsive-"
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
<template>
|
||||||
|
<el-config-provider :locale="currentLocale">
|
||||||
|
<router-view />
|
||||||
|
<ReDialog />
|
||||||
|
</el-config-provider>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent } from "vue";
|
||||||
|
import { ElConfigProvider } from "element-plus";
|
||||||
|
import zhCn from "element-plus/lib/locale/lang/zh-cn";
|
||||||
|
import { ReDialog } from "@/components/ReDialog";
|
||||||
|
export default defineComponent({
|
||||||
|
name: "app",
|
||||||
|
components: {
|
||||||
|
[ElConfigProvider.name]: ElConfigProvider,
|
||||||
|
ReDialog
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
currentLocale() {
|
||||||
|
return zhCn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
@ -0,0 +1,24 @@
|
|||||||
|
import { http } from "@/utils/http";
|
||||||
|
|
||||||
|
type Result = {
|
||||||
|
success: boolean;
|
||||||
|
data?: {
|
||||||
|
/** 列表数据 */
|
||||||
|
list: Array<any>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 卡片列表 */
|
||||||
|
export const getCardList = (data?: object) => {
|
||||||
|
return http.request<Result>("post", "/getCardList", { data });
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 版本日志 */
|
||||||
|
export const getReleases = () => {
|
||||||
|
return http.request<Result>("get", "/releases");
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 平台算法库 */
|
||||||
|
export const getAlgorithmList = (data?: object) => {
|
||||||
|
return http.request<Result>("post", "/algorithmList", { data });
|
||||||
|
};
|
@ -0,0 +1,10 @@
|
|||||||
|
import { http } from "@/utils/http";
|
||||||
|
|
||||||
|
type Result = {
|
||||||
|
success: boolean;
|
||||||
|
data: Array<any>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getAsyncRoutes = () => {
|
||||||
|
return http.request<Result>("get", "/getAsyncRoutes");
|
||||||
|
};
|
@ -0,0 +1,88 @@
|
|||||||
|
import { http } from "@/utils/http";
|
||||||
|
|
||||||
|
/** 创建新的会话 */
|
||||||
|
|
||||||
|
export const createNewSession = (data?: object) => {
|
||||||
|
return http.request("post", "/intro-robot/session/createNewSession", {
|
||||||
|
data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/** 分页获取会话列表
|
||||||
|
*/
|
||||||
|
export const querySessionPage = (data?: object) => {
|
||||||
|
return http.request("get", "/intro-robot/session/querySessionPage", {
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
export const deleteSession = (data?: object) => {
|
||||||
|
return http.request("post", "/intro-robot/session/deleteSession", {
|
||||||
|
data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/** 创建案件前,根据关键词查找案件ID或名称
|
||||||
|
*/
|
||||||
|
export const queryAjBeforeCreatSession = (data?: object) => {
|
||||||
|
return http.request("get", "/intro-robot/session/queryAjBeforeCreatSession", {
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/** 机器人对话服务(文字) */
|
||||||
|
|
||||||
|
export const textTalkRobot = (data?: object) => {
|
||||||
|
return http.request("post", "/intro-robot/robot/textTalkRobot", {
|
||||||
|
data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/** 机器人对话服务(语音) */
|
||||||
|
|
||||||
|
|
||||||
|
export const videoTalkRobot = (data?: object) => {
|
||||||
|
return http.request(
|
||||||
|
"post",
|
||||||
|
"/intro-robot/robot/videoTalkRobot",
|
||||||
|
{ data },
|
||||||
|
{ headers: { "Content-Type": "multipart/form-data" } }
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 获取对话内容列表
|
||||||
|
*/
|
||||||
|
export const talkList = (data?: object) => {
|
||||||
|
return http.request("get", "/intro-robot/robot/talkList", {
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/** 查询嫌疑人信息
|
||||||
|
*/
|
||||||
|
export const querySuspectInfo = (data?: object) => {
|
||||||
|
return http.request("get", "/intro-robot/robot/querySuspectInfo", {
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 查询会话历史记录列表(结束时评分选择使用,非对话框内容)
|
||||||
|
export const querySessionHistory = (data?: object) => {
|
||||||
|
return http.request("get", "/intro-robot/session/querySessionHistory", {
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/** 结束会话 */
|
||||||
|
|
||||||
|
export const finishSession = (data?: object) => {
|
||||||
|
return http.request("post", "/intro-robot/session/finishSession", {
|
||||||
|
data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/** 查询会话参数
|
||||||
|
*/
|
||||||
|
export const findSessionParam = (data?: object) => {
|
||||||
|
return http.request("get", "/intro-robot/sessionParam/findSessionParam", {
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/** 保存会话参数 */
|
||||||
|
|
||||||
|
export const sessionParamSave = (data?: object) => {
|
||||||
|
return http.request("post", "/intro-robot/sessionParam/save", {
|
||||||
|
data
|
||||||
|
});
|
||||||
|
};
|
@ -0,0 +1,22 @@
|
|||||||
|
import { http } from "@/utils/http";
|
||||||
|
|
||||||
|
/** 查询字典树 */
|
||||||
|
export const queryCommonDictTree = (data?: object) => {
|
||||||
|
return http.request(
|
||||||
|
"get",
|
||||||
|
"/virtual-patient-manage/commonDic/queryCommonDictTree",
|
||||||
|
{
|
||||||
|
params: data
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/** 上传文件*/
|
||||||
|
|
||||||
|
export const uploadFile = (data?: object) => {
|
||||||
|
return http.request(
|
||||||
|
"post",
|
||||||
|
"/virtual-patient-manage/fileManage/uploadFile",
|
||||||
|
{ data },
|
||||||
|
{ headers: { "Content-Type": "multipart/form-data" } }
|
||||||
|
);
|
||||||
|
};
|
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 521 B |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 439 B |
After Width: | Height: | Size: 619 B |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 209 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,26 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: "iconfont"; /* Project id 2208059 */
|
||||||
|
src: url("iconfont.woff2?t=1671895108120") format("woff2"),
|
||||||
|
url("iconfont.woff?t=1671895108120") format("woff"),
|
||||||
|
url("iconfont.ttf?t=1671895108120") format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconfont {
|
||||||
|
font-family: "iconfont" !important;
|
||||||
|
font-size: 16px;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pure-iconfont-tabs:before {
|
||||||
|
content: "\e63e";
|
||||||
|
}
|
||||||
|
|
||||||
|
.pure-iconfont-logo:before {
|
||||||
|
content: "\e620";
|
||||||
|
}
|
||||||
|
|
||||||
|
.pure-iconfont-new:before {
|
||||||
|
content: "\e615";
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"id": "2208059",
|
||||||
|
"name": "pure-admin",
|
||||||
|
"font_family": "iconfont",
|
||||||
|
"css_prefix_text": "pure-iconfont-",
|
||||||
|
"description": "pure-admin-iconfont",
|
||||||
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "20594647",
|
||||||
|
"name": "Tabs",
|
||||||
|
"font_class": "tabs",
|
||||||
|
"unicode": "e63e",
|
||||||
|
"unicode_decimal": 58942
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "22129506",
|
||||||
|
"name": "PureLogo",
|
||||||
|
"font_class": "logo",
|
||||||
|
"unicode": "e620",
|
||||||
|
"unicode_decimal": 58912
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "7795615",
|
||||||
|
"name": "New",
|
||||||
|
"font_class": "new",
|
||||||
|
"unicode": "e615",
|
||||||
|
"unicode_decimal": 58901
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 795 B |
After Width: | Height: | Size: 840 B |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" class="icon" viewBox="0 0 1024 1024"><path fill="#386BF3" d="M410.558.109c0 210.974-300.876 361.752-300.876 633.548 0 174.943 134.704 316.787 300.876 316.787s300.877-141.817 300.877-316.787C711.408 361.752 410.558 210.974 410.558.109z"/><path fill="#C3D2FB" d="M613.469 73.665c0 211.055-300.877 361.914-300.877 633.547C312.592 882.156 447.296 1024 613.47 1024s300.876-141.817 300.876-316.788C914.29 435.58 613.469 284.72 613.469 73.665z"/><path fill="#303F5B" d="M312.592 707.212c0-183.713 137.636-312.171 226.723-441.39 81.702 106.112 172.12 218.74 172.12 367.726A309.755 309.755 0 0 1 420.36 950.064a323.114 323.114 0 0 1-107.769-242.852z"/></svg>
|
After Width: | Height: | Size: 712 B |
After Width: | Height: | Size: 191 KiB |
After Width: | Height: | Size: 749 B |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 133 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 1001 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 742 B |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,5 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M10 18.3332C14.6024 18.3332 18.3334 14.6022 18.3334 9.99984C18.3334 5.39746 14.6024 1.6665 10 1.6665C5.39765 1.6665 1.66669 5.39746 1.66669 9.99984C1.66669 14.6022 5.39765 18.3332 10 18.3332Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
|
||||||
|
<path d="M10 6.6665V13.3332" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M6.66669 10H13.3334" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 596 B |
@ -0,0 +1,8 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g id="tianjia">
|
||||||
|
<rect id="Rectangle 1949" x="0.5" y="0.5" width="19" height="19" rx="3.5" fill="white" stroke="#D9D9D9"/>
|
||||||
|
<g id="添加 1">
|
||||||
|
<path id="Vector" d="M13.9926 9.39973H10.5945V6.00168C10.5945 5.84262 10.5313 5.69008 10.4189 5.57761C10.3064 5.46514 10.1539 5.40195 9.99481 5.40195C9.83576 5.40195 9.68321 5.46514 9.57074 5.57761C9.45828 5.69008 9.39509 5.84262 9.39509 6.00168V9.39973H5.99704C5.83798 9.39973 5.68544 9.46291 5.57297 9.57538C5.4605 9.68785 5.39731 9.84039 5.39731 9.99945C5.39731 10.1585 5.4605 10.311 5.57297 10.4235C5.68544 10.536 5.83798 10.5992 5.99704 10.5992H9.39509V13.9972C9.39509 14.1563 9.45828 14.3088 9.57074 14.4213C9.68321 14.5338 9.83576 14.5969 9.99481 14.5969C10.1539 14.5969 10.3064 14.5338 10.4189 14.4213C10.5313 14.3088 10.5945 14.1563 10.5945 13.9972V10.5992H13.9926C14.1516 10.5992 14.3042 10.536 14.4167 10.4235C14.5291 10.311 14.5923 10.1585 14.5923 9.99945C14.5923 9.84039 14.5291 9.68785 14.4167 9.57538C14.3042 9.46291 14.1516 9.39973 13.9926 9.39973Z" fill="#D9D9D9" stroke="#D9D9D9" stroke-width="0.2"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,9 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4.66675 8.33333C4.66675 6.4924 6.15915 5 8.00008 5C9.84101 5 11.3334 6.4924 11.3334 8.33333V13.6667H4.66675V8.33333Z" stroke="#333333" stroke-linejoin="round"/>
|
||||||
|
<path d="M8 1.66667V2.66667" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M11.9638 3.10941L11.321 3.87546" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M14.073 6.76244L13.0881 6.9361" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M1.927 6.76247L2.91181 6.9361" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M4.03613 3.10934L4.67893 3.8754" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M2 13.6667H14.3333" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 893 B |
@ -0,0 +1,9 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4.6665 8.33333C4.6665 6.4924 6.1589 5 7.99984 5C9.84077 5 11.3332 6.4924 11.3332 8.33333V13.6667H4.6665V8.33333Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
|
||||||
|
<path d="M8 1.66675V2.66675" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M11.9641 3.10938L11.3213 3.87543" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M14.0727 6.76245L13.0879 6.93612" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M1.92725 6.76245L2.91205 6.93608" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M4.03613 3.10938L4.67893 3.87543" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M2 13.6667H14.3333" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,11 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_529_12491)">
|
||||||
|
<path d="M8.00016 1.33325L6.00016 3.33325H3.3335V5.99992L1.3335 7.99992L3.3335 9.99992V12.6666H6.00016L8.00016 14.6666L10.0002 12.6666H12.6668V9.99992L14.6668 7.99992L12.6668 5.99992V3.33325H10.0002L8.00016 1.33325Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
|
||||||
|
<path d="M8 10C9.10457 10 10 9.10457 10 8C10 6.89543 9.10457 6 8 6C6.89543 6 6 6.89543 6 8C6 9.10457 6.89543 10 8 10Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_529_12491">
|
||||||
|
<rect width="16" height="16" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 709 B |
@ -0,0 +1 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 48 48"><path fill="#2F88FF" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="4" d="M44 40.836c-4.893-5.973-9.238-9.362-13.036-10.168-3.797-.805-7.412-.927-10.846-.365V41L4 23.545 20.118 7v10.167c6.349.05 11.746 2.328 16.192 6.833 4.445 4.505 7.009 10.117 7.69 16.836Z" clip-rule="evenodd"/></svg>
|
After Width: | Height: | Size: 360 B |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M2.88 18.054a35.897 35.897 0 0 1 8.531-16.32.8.8 0 0 1 1.178 0c.166.18.304.332.413.455a35.897 35.897 0 0 1 8.118 15.865c-2.141.451-4.34.747-6.584.874l-2.089 4.178a.5.5 0 0 1-.894 0l-2.089-4.178a44.019 44.019 0 0 1-6.584-.874zm6.698-1.123 1.157.066L12 19.527l1.265-2.53 1.157-.066a42.137 42.137 0 0 0 4.227-.454A33.913 33.913 0 0 0 12 4.09a33.913 33.913 0 0 0-6.649 12.387c1.395.222 2.805.374 4.227.454zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"/></svg>
|
After Width: | Height: | Size: 588 B |
@ -0,0 +1 @@
|
|||||||
|
<svg width="1em" height="1em" fill="none" class="t-icon t-icon-calendar" viewBox="0 0 16 16"><path fill="currentColor" d="M10 3H6V1.5H5V3H3a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1h-2V1.5h-1V3zM5 5h1V4h4v1h1V4h2v2H3V4h2v1zM3 7h10v6H3V7z"/></svg>
|
After Width: | Height: | Size: 267 B |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.38 2.019a7.5 7.5 0 1 0 10.6 10.6C21.662 17.854 17.316 22 12.001 22 6.477 22 2 17.523 2 12c0-5.315 4.146-9.661 9.38-9.981z"/></svg>
|
After Width: | Height: | Size: 263 B |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85 1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></svg>
|
After Width: | Height: | Size: 480 B |
@ -0,0 +1,5 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="2.5" y="2.5" width="11" height="9.28572" rx="1.5" stroke="#333333"/>
|
||||||
|
<path d="M4.57153 14H11.4287" stroke="#333333" stroke-linecap="round"/>
|
||||||
|
<path d="M7.07728 4.90192L8.92258 4.90192C9.10121 4.90192 9.26628 4.99722 9.35559 5.15192L10.2782 6.74999C10.3676 6.90469 10.3676 7.09529 10.2782 7.24999L9.35559 8.84807C9.26628 9.00277 9.10121 9.09807 8.92258 9.09807L7.07728 9.09807C6.89865 9.09807 6.73359 9.00277 6.64427 8.84807L5.72162 7.24999C5.6323 7.09529 5.6323 6.90469 5.72162 6.74999L6.64427 5.15192C6.73359 4.99722 6.89865 4.90192 7.07728 4.90192Z" stroke="#333333"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 682 B |
@ -0,0 +1,5 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M2.66675 13.3333C2.66675 12 2.66675 4.33333 2.66675 4.33333C2.66675 3.22876 3.62188 2.33333 4.80008 2.33333H13.3334V12C13.3334 12 6.66058 12 4.80008 12C3.12083 12 2.66675 12.2281 2.66675 13.3333Z" stroke="#333333" stroke-linejoin="round"/>
|
||||||
|
<path d="M5 9L7.66667 6.33333L9 8.66667L11.6667 6" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.00008 14.6667H13.3334V12H4.00008C3.2637 12 2.66675 12.597 2.66675 13.3333C2.66675 14.0697 3.2637 14.6667 4.00008 14.6667Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 710 B |
@ -0,0 +1,4 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M17.5 10.8333V16.6667C17.5 17.1269 17.1269 17.5 16.6667 17.5H3.33333C2.8731 17.5 2.5 17.1269 2.5 16.6667V3.33333C2.5 2.8731 2.8731 2.5 3.33333 2.5H9.16667" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M5.83331 11.1333V14.1667H8.88215L17.5 5.54504L14.4563 2.5L5.83331 11.1333Z" stroke="#1C0D82" stroke-width="1.5" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 500 B |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" aria-hidden="true" class="iconify iconify--ant-design" viewBox="0 0 1024 1024"><path fill="currentColor" d="M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z"/></svg>
|
After Width: | Height: | Size: 352 B |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" aria-hidden="true" class="re-screen" color="#00000073" viewBox="0 0 16 16"><path fill="currentColor" d="M3.5 4H1V3h2V1h1v2.5l-.5.5zM13 3V1h-1v2.5l.5.5H15V3h-2zm-1 9.5V15h1v-2h2v-1h-2.5l-.5.5zM1 12v1h2v2h1v-2.5l-.5-.5H1zm11-1.5-.5.5h-7l-.5-.5v-5l.5-.5h7l.5.5v5zM10 7H6v2h4V7z"/></svg>
|
After Width: | Height: | Size: 348 B |
@ -0,0 +1,14 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g id="xinjianwenjian" clip-path="url(#clip0_1507_5744)">
|
||||||
|
<path id="Vector" d="M22.0311 22H1.96886C1.43305 22 1 21.561 1 21.0179V4.98208C1 4.43896 1.43305 4 1.96886 4H22.0311C22.5669 4 23 4.43896 23 4.98208V21.0179C23 21.5586 22.5645 22 22.0311 22Z" fill="#FFE9B4"/>
|
||||||
|
<path id="Vector_2" d="M12.429 8.13636H1V3.00662C1 2.44992 1.44995 2 2.00664 2H9.82846C10.2733 2 10.6648 2.28979 10.7919 2.71683L12.429 8.13636Z" fill="#FFB02C"/>
|
||||||
|
<path id="Vector_3" d="M22.0311 22H1.96886C1.43305 22 1 21.4909 1 20.8609V6.13909C1 5.50913 1.43305 5 1.96886 5H22.0311C22.5669 5 23 5.50913 23 6.13909V20.8609C23 21.488 22.5645 22 22.0311 22Z" fill="#FFCA28"/>
|
||||||
|
<rect id="Rectangle 1968" x="7.25" y="12.5" width="9" height="1.5" fill="#FFAA0F"/>
|
||||||
|
<rect id="Rectangle 1969" x="11" y="17.75" width="9" height="1.5" transform="rotate(-90 11 17.75)" fill="#FFAA0F"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1507_5744">
|
||||||
|
<rect width="24" height="24" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" aria-hidden="true" class="re-screen" color="#00000073" viewBox="0 0 16 16"><path fill="currentColor" d="M3 12h10V4H3v8zm2-6h6v4H5V6zM2 6H1V2.5l.5-.5H5v1H2v3zm13-3.5V6h-1V3h-3V2h3.5l.5.5zM14 10h1v3.5l-.5.5H11v-1h3v-3zM2 13h3v1H1.5l-.5-.5V10h1v3z"/></svg>
|
After Width: | Height: | Size: 318 B |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" aria-hidden="true" class="globalization" viewBox="0 0 512 512"><path fill="currentColor" d="m478.33 433.6-90-218a22 22 0 0 0-40.67 0l-90 218a22 22 0 1 0 40.67 16.79L316.66 406h102.67l18.33 44.39A22 22 0 0 0 458 464a22 22 0 0 0 20.32-30.4zM334.83 362 368 281.65 401.17 362zm-66.99-19.08a22 22 0 0 0-4.89-30.7c-.2-.15-15-11.13-36.49-34.73 39.65-53.68 62.11-114.75 71.27-143.49H330a22 22 0 0 0 0-44H214V70a22 22 0 0 0-44 0v20H54a22 22 0 0 0 0 44h197.25c-9.52 26.95-27.05 69.5-53.79 108.36-31.41-41.68-43.08-68.65-43.17-68.87a22 22 0 0 0-40.58 17c.58 1.38 14.55 34.23 52.86 83.93.92 1.19 1.83 2.35 2.74 3.51-39.24 44.35-77.74 71.86-93.85 80.74a22 22 0 1 0 21.07 38.63c2.16-1.18 48.6-26.89 101.63-85.59 22.52 24.08 38 35.44 38.93 36.1a22 22 0 0 0 30.75-4.9z"/></svg>
|
After Width: | Height: | Size: 826 B |
After Width: | Height: | Size: 453 KiB |
@ -0,0 +1,12 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_529_12469)">
|
||||||
|
<path d="M1.93945 2.24243V4.66667H4.3637" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M1.3335 7.99992C1.3335 11.6818 4.31826 14.6666 8.00016 14.6666C11.6821 14.6666 14.6668 11.6818 14.6668 7.99992C14.6668 4.31802 11.6821 1.33325 8.00016 1.33325C5.53283 1.33325 3.37853 2.67362 2.22575 4.66595" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M8.00186 4L8.00146 8.00293L10.8279 10.8294" stroke="#1C0D82" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_529_12469">
|
||||||
|
<rect width="16" height="16" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 816 B |
@ -0,0 +1,4 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M6.26175 2.65666L3.11758 5.10666C2.59258 5.51499 2.16675 6.38416 2.16675 7.04333V11.3658C2.16675 12.7192 3.26925 13.8275 4.62258 13.8275H11.3776C12.7309 13.8275 13.8334 12.7192 13.8334 11.3717V7.12499C13.8334 6.41916 13.3609 5.51499 12.7834 5.11249L9.17842 2.58666C8.36175 2.01499 7.04925 2.04416 6.26175 2.65666Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M8 11.4942V9.74417" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 588 B |