提交代码

This commit is contained in:
cjb 2024-12-20 16:45:08 +08:00
commit 98c790c14c
289 changed files with 32586 additions and 0 deletions

1
.env Normal file
View File

@ -0,0 +1 @@
VITE_PARAM = "VITE_PARAM"

10
.env.development Normal file
View File

@ -0,0 +1,10 @@
# 页面标题
VITE_APP_TITLE = 智慧换电管理系统
# 开发环境配置
VITE_APP_ENV = 'development'
# 开发环境
VITE_APP_BASE_API = 'http://192.168.5.213:9100/gateway'
VITE_APP_BASE_API = '/dev-api'
#VITE_APP_BASE_API = 'https://api.evo-techina.com'

11
.env.production Normal file
View File

@ -0,0 +1,11 @@
# 页面标题
VITE_APP_TITLE = 若依管理系统
# 生产环境配置
VITE_APP_ENV = 'production'
# 若依管理系统/生产环境
#VITE_APP_BASE_API = '/prod-api'
VITE_APP_BASE_API = 'https://api.evo-techina.com'
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip

11
.env.staging Normal file
View File

@ -0,0 +1,11 @@
# 页面标题
VITE_APP_TITLE = 若依管理系统
# 生产环境配置
VITE_APP_ENV = 'staging'
# 若依管理系统/生产环境
VITE_APP_BASE_API = '/stage-api'
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip

21
.eslintrc.cjs Normal file
View File

@ -0,0 +1,21 @@
/* eslint-env node */
require("@rushstack/eslint-patch/modern-module-resolution");
//https://eslint.vuejs.org/rules/
module.exports = {
root: true,
extends: [
// "plugin:vue/vue3-essential",
// "plugin:vue/vue3-recommended",
// "plugin:vue/vue3-strongly-recommended",
// "eslint:recommended",
// "@vue/eslint-config-typescript/recommended",
// "@vue/eslint-config-prettier",
// "@vue/eslint-config-prettier/skip-formatting", // 或者和esline分开执行prettier --write . --ignore-path .gitignore
],
rules: {
// "vue/multi-word-component-names": "off", // 关闭名称校验
// "vue/html-closing-bracket-newline": "off", // html 不换行
},
};

5
.prettierrc.json Normal file
View File

@ -0,0 +1,5 @@
{
"printWidth": 180,
"jsxBracketSameLine": true,
"htmlWhitespaceSensitivity": "ignore"
}

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"typescript.tsdk": "node_modules\\typescript\\lib"
}

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 黄龙
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

58
README.md Normal file
View File

@ -0,0 +1,58 @@
# ruoyi-web-vue3-ts
本项目参考若依前后端分离版,前端由[若依 vue3](https://github.com/yangzongzhuan/RuoYi-Vue3)改写为 ts 版本,后端对[若依 V3.8.7](https://gitee.com/y_project/RuoYi-Vue)进行了修改[后端版本分支 vue3.ts.3.8.7](https://gitee.com/huanglgln/RuoYi-Vue),具体文档参见[若依官方文档](https://www.ruoyi.vip/)。本项目对部分代码做了优化,增加了 activiti7 工作流icon 使用了 elementPLus icon菜单对应 icon 需要重新配置,欢迎大家交流学习。
演示地址:[http://101.43.32.67:8090/login](http://101.43.32.67:8090/login)
admin admin123
工作流测试zhangsan/admin123;lisi/admin123
## 功能说明
工作台:我的流程、我的待办、我的已办
系统管理:用户管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数设置、通知公告、日志管理
系统监控:在线用户、定时任务、数据监控、服务监控、缓存监控、缓存列表
系统工具:表单构建、代码生成、系统接口、文件预览
流程管理:模型定义、流程部署、请假流程
## 页面展示
<img src="https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/page1.png" width = "50%" align=center /><img src="https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/page2.png" width = "50%" align=center />
<img src="https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/page3.png" width = "50%" align=center /><img src="https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/page4.png" width = "50%" align=center />
<img src="https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/page5.png" width = "50%" align=center /><img src="https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/page6.png" width = "50%" align=center />
<img src="https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/page7.png" width = "50%" align=center /><img src="https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/page8.png" width = "50%" align=center />
<img src="https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/page9.png" width = "50%" align=center />
## 脚本命令
### 依赖安装(建议用 pnpm)
```sh
npm install
or (pnpm install)
```
### 本地运行
```sh
pnpm run dev
```
### 代码检查(提交代码前执行,养成好习惯)
```sh
pnpm run lint
```
### 打包
```sh
pnpm run build:prod
```
### 支持作者
![Image text](https://gitee.com/huanglgln/ruoyi-web-vue3-ts/raw/master/public/images/shoukuanma.png)
### 欢迎讨论
huanglgln@163.com

10
env.d.ts vendored Normal file
View File

@ -0,0 +1,10 @@
/// <reference types="vite/client" />
interface ImportMetaEnv {
readonly VITE_BASE_URL: string;
readonly VITE_PARAM: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}

14
index.html Normal file
View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>智慧换电管理系统</title>
</head>
<body>
<div id="app" style="background: #ebf5ff;"></div>
<script type="module" src="/src/main.ts"></script>
<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=ZJABZ-FWV6G-F7ZQ2-QKQKL-KQ3I5-DNBT7"></script>
</body>
</html>

80
package.json Normal file
View File

@ -0,0 +1,80 @@
{
"name": "yite",
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build:prod": "run-p type-check build-only:prod",
"build:stag": "run-p type-check build-only:stag",
"preview": "vite preview --port 4173",
"test:unit": "vitest --environment jsdom",
"type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false",
"build-only:prod": "vite build --mode production",
"build-only:stag": "vite build --mode staging",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"
},
"dependencies": {
"@bpmn-io/properties-panel": "^3.18.1",
"@element-plus/icons-vue": "^2.0.10",
"@form-create/designer": "^3.1.5",
"@form-create/element-ui": "^3.1.28",
"@vue-flow/additional-components": "^1.3.3",
"@vue-flow/core": "^1.6.0",
"@vue-office/docx": "^1.6.0",
"@vue-office/excel": "^1.6.4",
"@vue-office/pdf": "^1.6.3",
"@vueuse/components": "^10.9.0",
"@vueuse/core": "^10.6.1",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^1.2.3",
"bpmn-js": "^17.2.1",
"bpmn-js-properties-panel": "^5.13.0",
"camunda-bpmn-js-behaviors": "^1.3.0",
"camunda-bpmn-moddle": "^7.0.1",
"diagram-js": "^14.1.0",
"echarts": "^5.4.1",
"element-plus": "^2.4.4",
"file-saver": "^2.0.5",
"fuse.js": "7.0.0",
"gm-crypto": "^0.1.8",
"js-cookie": "^3.0.5",
"jsencrypt": "^3.3.2",
"nprogress": "^0.2.0",
"pinia": "^2.0.29",
"qqmap": "^1.0.1",
"screenfull": "^6.0.2",
"splitpanes": "^3.1.5",
"tiny-svg": "^4.0.0",
"vue": "~3.3.4",
"vue-cropper": "^1.1.1",
"vue-demi": "^0.14.7",
"vue-jsonp": "^2.0.0",
"vue-qqmap": "^1.1.1",
"vue-router": "^4.2.4",
"zeebe-bpmn-moddle": "^1.1.0"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.2.0",
"@types/file-saver": "^2.0.7",
"@types/js-cookie": "^3.0.6",
"@types/jsdom": "^16.2.15",
"@types/node": "^16.18.108",
"@types/nprogress": "^0.2.3",
"@types/splitpanes": "^2.2.6",
"@vitejs/plugin-vue": "^3.2.0",
"@vue/eslint-config-prettier": "^7.0.0",
"@vue/eslint-config-typescript": "^11.0.2",
"@vue/tsconfig": "^0.1.3",
"eslint": "^8.32.0",
"eslint-plugin-vue": "^9.9.0",
"jsdom": "^20.0.3",
"less": "^4.2.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.8.3",
"typescript": "~5.0.4",
"vite": "^4.5.2",
"vite-plugin-svg-icons": "^2.0.1",
"vitest": "^0.18.1",
"vue-tsc": "^0.38.9"
}
}

6782
pnpm-lock.yaml Normal file

File diff suppressed because it is too large Load Diff

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

11
src/App.d.ts vendored Normal file
View File

@ -0,0 +1,11 @@
declare module "*.vue" {
import { ComponentOptions } from "vue";
const componentOptions: ComponentOptions;
export default componentOptions;
}
declare const qq: any;
// declare module 'qqmap'{
// import QQMap from 'qqmap'
// export default qqmap
// }

88
src/App.vue Normal file
View File

@ -0,0 +1,88 @@
<script setup lang="ts" name="App">
import { ref,watch } from 'vue'
import { RouterView } from 'vue-router'
import { getToken } from '@/utils/auth'
import { checktoken } from '@/api/login'
import appStore from "@/stores/app";
import { ElMessage } from 'element-plus'
import Login from './views/components/login.vue'
const TIEM = 1000*60*10
let openpop = ref(false)
watch(() => appStore().isEffecti,(v) => {
openpop.value = false
if(!v && getToken()){
openpop.value = true
}
})
watch(() => appStore().loginPage,(v) => {
if(v){
openpop.value = false
}
})
setInterval(() => {
if(getToken() && !openpop.value){
checktoken({
token:getToken() as string
}).then(rps => {
if(rps.code != 1000){
ElMessage({
type: 'warning',
message: '登录失效请重新登录'
})
openpop.value = true
}
})
}
}, TIEM)
function update() {
openpop.value = false
//location.reload()
}
</script>
<template>
<el-dialog
v-model="openpop"
title=""
width="800px"
append-to-body
class="logingpop"
:show-close="false"
:close-on-click-modal="false"
>
<login type="2" @update="update" />
<!-- <template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="">登录</el-button>
</div>
</template> -->
</el-dialog>
<RouterView />
</template>
<style>
@import "./assets/main.css";
/* 自定义滚动条轨道 */
::-webkit-scrollbar-track {
background-color: #f1f1f1;
}
/* 自定义滚动条的滑块 */
::-webkit-scrollbar-thumb {
background-color: #888;
}
/* 设置滚动条的宽度 */
::-webkit-scrollbar {
width: 5px;
}
.logingpop {
/* 设置背景透明 */
background-color: transparent !important;
}
</style>

46
src/api/common.ts Normal file
View File

@ -0,0 +1,46 @@
import server from '@/utils/request'
//单文件上传
//gateway/resource/file/upload
interface File{
user:String,
isAlterRandomName:Boolean,
file:File
}
export function updateyys(data:File) {
// let formData = new FormData()
// formData.append('user',data.user
// formData.append('isAlterRandomName',data.isAlterRandomName
// formData.append('file', data.file)
// return server.request({
// headers:{
// 'Content-Type':'multipart/form-data',
// },
// url: '/resource/file/upload',
// method: 'post',
// data:formData
// })
}
//查询区划
interface Query{
admdvsNo?:String
admdvsName?:String
level?:String|Number
isTree?:String|Number //是否返回树1-是0-否
}
export function getArea(params:Query) {
return server.request({
url: '/resource/admdvs/treelist',
method: 'get',
params
})
}

16
src/api/form.ts Normal file
View File

@ -0,0 +1,16 @@
import type { FormContext, FormValidateCallback, FormValidationResult } from "element-plus";
import type { App } from "vue";
export type ElForm = FormContext &
App & {
readonly validate: (callback?: FormValidateCallback | undefined) => FormValidationResult;
};
export type QueryParam = {
pageNum: number;
pageSize: number;
beginTime?: string;
endTime?: string;
orderByColumn?: string;
isAsc?: string;
};

96
src/api/login.ts Normal file
View File

@ -0,0 +1,96 @@
import server from "@/utils/request";
import type { UserInfoObj } from "./system/user";
export type LoginReq = {
username: string;
password: string;
confirmPassword?: string;
rememberMe?: boolean;
code?: string;
uuid?: string;
};
// 登录方法
export function login(data: LoginReq) {
return server.requestT<{ token: string }>({
url: "/oauth2/login/oauthlogin",
headers: {
Authorization: "Basic eXRoZDpZVEhEMTIz",
isToken: false,
},
method: "post",
data: data,
},false);
}
// 注册方法
export function register(data: LoginReq) {
return server.request({
url: "/register",
headers: {
isToken: false,
},
method: "post",
data: data,
});
}
// 获取用户详细信息
export function getInfo() {
return server.requestT<{
user: UserInfoObj;
roles: string[];
permissions: string[];
}>({
url: "/getInfo",
method: "get",
});
}
// 退出方法
export function logout() {
return server.request({
url: "/oauth2/login/oauthlogout",
method: "DELETE",
});
}
// 获取验证码
export function getCodeImg() {
return server.requestT<{
captchaEnabled: boolean;
img: string;
uuid: string;
}>({
url: "/oauth2/captcha/get",
headers: {
isToken: false,
},
method: "get",
timeout: 20000,
},false);
}
//验证验证码是否有效
interface Code {
code: string | number;
}
export function checkcaptcha(data: Code) {
return server.requestT({
url: "/oauth2/captcha/check",
headers: {
isToken: false,
},
method: "post",
data: data,
});
}
//检查token 是否失效
export function checktoken(data: {token:string}) {
return server.requestT({
url: "/oauth2/login/checktoken",
method: "post",
data: data
});
}

27
src/api/menu.ts Normal file
View File

@ -0,0 +1,27 @@
import server from "@/utils/request";
export type MenuRouter = {
name: string;
path: string;
hidden?: boolean;
redirect?: string;
component?: string;
alwaysShow?: boolean;
meta: {
title: string;
icon?: string;
noCache?: boolean;
link?: string;
};
children?: MenuRouter[];
};
// 获取路由
export const getRouters = () => {
return server.request<MenuRouter[]>({
url:"/resource/menu/tree", //"/getRouters",
method: "get",
})
}
//'/gateway/resource/menu/tree'

81
src/api/monitor/cache.ts Normal file
View File

@ -0,0 +1,81 @@
import server from "@/utils/request";
export type CacheObj = {
cacheName: string;
cacheKey: string;
cacheValue?: string;
};
export type CacheInfoObj = {
info?: {
redis_version?: string;
redis_mode?: string;
tcp_port?: string;
connected_clients?: string;
uptime_in_days?: string;
used_memory_human?: string;
used_cpu_user_children?: string;
maxmemory_human?: string;
aof_enabled?: string;
rdb_last_bgsave_status?: string;
instantaneous_input_kbps?: string;
instantaneous_output_kbps?: string;
};
dbSize?: string;
commandStats?: string;
};
// 查询缓存详细
export function getCache() {
return server.request<CacheInfoObj>({
url: "/monitor/cache",
method: "get",
});
}
// 查询缓存名称列表
export function listCacheName() {
return server.request<string[]>({
url: "/monitor/cache/getNames",
method: "get",
});
}
// 查询缓存键名列表
export function listCacheKey(cacheName: string) {
return server.request<string[]>({
url: "/monitor/cache/getKeys/" + cacheName,
method: "get",
});
}
// 查询缓存内容
export function getCacheValue(cacheName: string, cacheKey: string) {
return server.request<CacheObj>({
url: "/monitor/cache/getValue/" + cacheName + "/" + cacheKey,
method: "get",
});
}
// 清理指定名称缓存
export function clearCacheName(cacheName: string) {
return server.request({
url: "/monitor/cache/clearCacheName/" + cacheName,
method: "delete",
});
}
// 清理指定键名缓存
export function clearCacheKey(cacheKey: string) {
return server.request({
url: "/monitor/cache/clearCacheKey/" + cacheKey,
method: "delete",
});
}
// 清理全部缓存
export function clearCacheAll() {
return server.request({
url: "/monitor/cache/clearCacheAll",
method: "delete",
});
}

81
src/api/monitor/job.ts Normal file
View File

@ -0,0 +1,81 @@
import server from "@/utils/request";
export type JobObj = {
jobId: string;
jobName?: string;
jobGroup?: string;
invokeTarget?: string;
cronExpression?: string;
misfirePolicy?: number;
concurrent?: number;
status?: string;
createTime?: string;
nextValidTime?: string;
};
// 查询定时任务调度列表
export function listJob(query: JobObj & { pageNum: number; pageSize: number }) {
return server.request<JobObj>({
url: "/monitor/job/list",
method: "get",
params: query,
});
}
// 查询定时任务调度详细
export function getJob(jobId: string) {
return server.request<JobObj>({
url: "/monitor/job/" + jobId,
method: "get",
});
}
// 新增定时任务调度
export function addJob(data: JobObj) {
return server.request({
url: "/monitor/job",
method: "post",
data: data,
});
}
// 修改定时任务调度
export function updateJob(data: JobObj) {
return server.request({
url: "/monitor/job",
method: "put",
data: data,
});
}
// 删除定时任务调度
export function delJob(jobId: string) {
return server.request({
url: "/monitor/job/" + jobId,
method: "delete",
});
}
// 任务状态修改
export function changeJobStatus(jobId: string, status: string) {
const data = {
jobId,
status,
};
return server.request({
url: "/monitor/job/changeStatus",
method: "put",
data: data,
});
}
// 定时任务立即执行一次
export function runJob(jobId: string, jobGroup: string) {
const data = {
jobId,
jobGroup,
};
return server.request({
url: "/monitor/job/run",
method: "put",
data: data,
});
}

36
src/api/monitor/jobLog.ts Normal file
View File

@ -0,0 +1,36 @@
import server from "@/utils/request";
import type { QueryParam } from "../form";
export type JobLogObj = {
jobLogId: string;
jobName?: string;
jobGroup?: string;
createTime?: string;
invokeTarget?: string;
jobMessage?: string;
status?: string;
exceptionInfo?: string;
};
// 查询调度日志列表
export function listJobLog(query: JobLogObj & QueryParam) {
return server.request<JobLogObj>({
url: "/monitor/jobLog/list",
method: "get",
params: query,
});
}
// 删除调度日志
export function delJobLog(jobLogId: string) {
return server.request({
url: "/monitor/jobLog/" + jobLogId,
method: "delete",
});
}
// 清空调度日志
export function cleanJobLog() {
return server.request({
url: "/monitor/jobLog/clean",
method: "delete",
});
}

View File

@ -0,0 +1,51 @@
import server from "@/utils/request";
import type { QueryParam } from "../form";
export type LoginLogObj = {
browser?: string;
createBy?: string;
createTime?: string;
infoId: string;
ipaddr?: string;
loginLocation?: string;
loginTime?: string;
msg?: string;
os?: string;
remark?: string;
status?: string;
updateBy?: string;
updateTime?: string;
userName?: string;
};
// 查询登录日志列表
export function list(query: LoginLogObj & QueryParam) {
return server.request<LoginLogObj>({
url: "/monitor/logininfor/list",
method: "get",
params: query,
});
}
// 删除登录日志
export function delLogininfor(infoId: string) {
return server.request({
url: "/monitor/logininfor/" + infoId,
method: "delete",
});
}
// 解锁用户登录状态
export function unlockLogininfor(userName: string) {
return server.request({
url: "/monitor/logininfor/unlock/" + userName,
method: "get",
});
}
// 清空登录日志
export function cleanLogininfor() {
return server.request({
url: "/monitor/logininfor/clean",
method: "delete",
});
}

22
src/api/monitor/online.ts Normal file
View File

@ -0,0 +1,22 @@
import server from "@/utils/request";
export type OnlineInfoObj = {
ipaddr?: string;
userName?: string;
tokenId: string;
};
// 查询在线用户列表
export function list(query: OnlineInfoObj & { pageNum: number; pageSize: number }) {
return server.request<OnlineInfoObj>({
url: "/monitor/online/list",
method: "get",
params: query,
});
}
// 强退用户
export function forceLogout(tokenId: string) {
return server.request({
url: "/monitor/online/" + tokenId,
method: "delete",
});
}

View File

@ -0,0 +1,51 @@
import server from "@/utils/request";
export type OperLogObj = {
businessType: string;
businessTypes?: string;
createBy?: string;
createTime?: string;
deptName?: string;
errorMsg?: string;
jsonResult?: string;
method?: string;
operId: string;
operIp?: string;
operLocation?: string;
operName?: string;
operParam?: string;
costTime?: string;
operTime?: string;
operUrl?: string;
operatorType?: string;
remark?: string;
requestMethod?: string;
status?: number;
title?: string;
updateBy?: string;
updateTime?: string;
};
// 查询操作日志列表
export function list(query: OperLogObj & { pageNum: number; pageSize: number }) {
return server.request<OperLogObj>({
url: "/monitor/operlog/list",
method: "get",
params: query,
});
}
// 删除操作日志
export function delOperlog(operId: string) {
return server.request({
url: "/monitor/operlog/" + operId,
method: "delete",
});
}
// 清空操作日志
export function cleanOperlog() {
return server.request({
url: "/monitor/operlog/clean",
method: "delete",
});
}

52
src/api/monitor/server.ts Normal file
View File

@ -0,0 +1,52 @@
import server from "@/utils/request";
export type ServerObj = {
cpu?: {
cpuNum?: number;
used?: number;
sys?: number;
free?: number;
};
mem?: {
total?: number;
used?: number;
free?: number;
usage?: number;
};
jvm?: {
total?: number;
used?: number;
free?: number;
usage?: number;
name?: string;
version?: string;
startTime?: string;
runTime?: string;
home?: string;
inputArgs?: string;
};
sys?: {
computerName?: string;
osName?: string;
userDir?: string;
computerIp?: string;
osArch?: string;
};
sysFiles?: {
dirName?: string;
sysTypeName?: string;
typeName?: string;
total?: number;
free?: number;
used?: number;
usage?: number;
}[];
};
// 获取服务信息
export function getServer() {
return server.request<ServerObj>({
url: "/monitor/server",
method: "get",
});
}

View File

@ -0,0 +1,64 @@
import server from '@/utils/request'
//新增
interface Addobj{
code:String //编码
tradeNo:String //交易编码
preTotalAmount:String //交易前账户总金额,分:总金额=充值金额+赠送金额
preRechargeAmount:String //交易前充值余额,分
preGiftAmount:String //交易前赠送金额,分
tradeTotalAmount:String //交易总金额,分:总金额=充值金额+赠送金额
tradeRechargeAmount:String //交易充值余额,分
tradeGiftAmount:String //交易赠送金额,分
afterTotalAmount:String //交易后总金额,分:总金额=充值金额+赠送金额
afterRechargeAmount:String //交易后充值余额,分
afterGiftAmount:String //交易后赠送金额,分
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/batterystation/fee/detail/add',
method: 'post',
data
})
}
//修改 ??
// export function update(data:Addobj) {
// return server.request({
// url: '/cloud/batterystation/fee/detail/update',
// method: 'post',
// data
// })
// }
//查询
interface Querydata{
pageSize:String|Number //每页条数,示例值(10)
pageNo:String|Number //页数,示例值
ownerType?:String //户主类型1-个人2-企业
ownerId?:String //户主ID
code?:String //编码
stationCode?:String //引入站点
}
export function getmxlist(params:Querydata) {
return server.request({
url: '/cloud/wallet/detail/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string,code:string) {
return server.request({
url: '/cloud/wallet/detail/del',
method: 'post',
data:{
id,
code
}
})
}

61
src/api/order/account.ts Normal file
View File

@ -0,0 +1,61 @@
import server from '@/utils/request'
//新增
interface Addobj{
ownerType:String //户主类型1-个人2-企业
ownerId:String //户主ID
stationCode:String //引入站点
pkId?:String
totalAmount?:String //账户总金额,分:总金额=充值金额+赠送金额
rechargeAmount?:String //充值余额,分
giftAmount?:String //赠送金额,分
point?:String //积分余额
deposit?:String //押金
snCode?:String //SN码
rent?:String //租金
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/wallet/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/wallet/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
ownerType?:String //户主类型1-个人2-企业
ownerId?:String //户主ID
code?:String //编码
stationCode?:String //引入站点
}
export function getjqrlist(params:Querydata) {
return server.request({
url: '/cloud/wallet/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/wallet/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,84 @@
import server from '@/utils/request'
//新增
interface Addobj{
orderType:String|Number //类型1-换电2-充电
plateNum:String //车牌号
orderTime:String //订单时间,示例值(yyyy-MM-dd HH:mm:ss)
stationCode:String //换电站编码
stationName:String //换电站名称
accountCode:String //金额账号
amount:String|Number //订单金额
status:String|Number //订单状态1-等待受理2-换电中3-换电完成4-出现异常5-未结算6-订单取消7-已结算
feeType:String //计算费用方式1-ODO2-SOC3-按电量
basicFee:String //基础费用
serviceTimeBegin:String|Number //服务开始时间
serviceTimeEnd:String //服务结束时间
serviceFee:String|Number //服务费
lastRentBatCarOdo:String //上次租赁电池时车辆里程
nowReturnBatCarOdo:String //归还电池时车辆里程
odoAmount:String|Number //按ODO换电费
electAmount:String|Number //总充电量
rentBatNo:String|Number //租借电池包仓位
rentBatCode:String //租用电池包编码
rentBatSoc:String //租用电池包SOC
returnBatCode:String //归还电池包编码
returnBatNo:String|Number //归还电池包仓位
returnBatSoc:String //归还电池包SOC
returnBatRentSoc:String //归还电池租出时soc
returnBatRentStationCode:String //归还电池租出的换电站编码
returnBatRentStationName:String //归还电池租出的换电站
changeMode:String|Number //换电模式1-全自动2-半自动3-人工干预
changeLane:String|Number //换电车道 1-A 车道;2-B 车道
userId:String //换电车主ID
tradeNo:String //交易编码
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/order/swap/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/order/swap/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|Number //每页条数
pageNo:String|Number //页数
orderNo:String //订单编码
plateNum:String //车牌号
orderTimeBegin:String //订单时间开始,示例值(yyyy-MM-dd HH:mm:ss)
orderTimeEnd:String //订单时间结束
stationCode:String //换电站编码
stationName:String //换电站名称
userId:String //换电车主ID
tradeNo:String //交易编码
}
export function getjqrlist(params:Querydata) {
return server.request({
url: '/cloud/order/swap/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/order/swap/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,57 @@
import server from '@/utils/request'
//新增
interface Addobj{
userId:String //预约人ID
uname:String //预约人姓名
phone:String //手机号码
plateNum:String //车牌号
stationCode:String //换电站编码
stationName:String //换电站名称
swapDay:String //预约换电日期,示例值(yyyyMMdd)
swapDuration:String //预约换电时间段,示例值(8:00-10:00)
status:String|Number //状态1-预约成功2-到店使用3-取消4-过期
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/order/swap/pre/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/order/swap/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|Number //每页条数
pageNo:String|Number //页数
userId:String //车主id
status:String //状态
}
export function getjqrlist(params:Querydata) {
return server.request({
url: '/cloud/order/swap/pre/list',
method: 'get',
params
})
}
//取消预约
export function delhdz(id:string) {
return server.request({
url: '/cloud/order/swap/pre/cancel',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,60 @@
import server from '@/utils/request'
//新增
interface Addobj{
typeCode:String //电池型号编码
batCode:String //电池编码
sourceFrom:String|Number //初始来源1-站2-车
status:String|Number //状态1-出租中2-充电中3-充电完毕4-故障5-其它
pkId?:String
productionDate?:String //生产日期
registrationDate?:String //注册时间
sourceCode?:String //站码或车牌照
stationCode?:String //换电站编码
soc?:String|Number //当前电量
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/batterystation/dc/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/batterystation/dc/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
stationCode?:String //换电站编码
proxyId?:String //归属运营商ID
}
export function getjqrlist(params:Querydata) {
return server.request({
url: '/cloud/batterystation/dc/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/batterystation/dc/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,56 @@
import server from '@/utils/request'
//新增
interface Addobj{
stationCode:String //换电站编码
standardId:String //收费规则ID
timeBegin:String //开始时间
timeEnd:String //结束时间
pkId?:String
eachKmFee?:String|Number //每公里收费
eachSocFee?:String|Number //每SOC收费
eachKwhFee?:String|Number //每度电收费
timeServiceFee?:String|Number //谷段服务费
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/batterystation/fee/detail/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/batterystation/fee/detail/update',
method: 'post',
data
})
}
//查询
interface Querydata{
standardId:String //收费规则id
}
export function getmxlist(params:Querydata) {
return server.request({
url: '/cloud/batterystation/fee/detail/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/batterystation/fee/detail/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,54 @@
import server from '@/utils/request'
//新增
interface Addobj{
pkId?:String
stationCode:String //换电站编码
dccNo:String|Number //电池仓序号
status:String|Number //状态1-正常2-检修, 3-坏
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/batterystation/dcc/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/batterystation/dcc/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
stationCode?:String //换电站编码
proxyId?:String //归属运营商ID
}
export function getjqrlist(params:Querydata) {
return server.request({
url: '/cloud/batterystation/dcc/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/batterystation/dcc/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,59 @@
import server from '@/utils/request'
//新增
interface Addobj{
stationCode:String //换电站编码
code:String //充电机编码
version:String //充电机软件版本
switchType:String|Number //充电连接类型1-连接器2-充电枪
status:String|Number //状态1-正常2-检修, 3-坏
pkId?:String
dccNo?:String //电池仓序号
gunNum?:String|Number //充电枪数量
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/batterystation/dj/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/batterystation/dj/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
stationCode:String //换电站编码
proxyId?:String //归属运营商ID
}
export function getjqrlist(params:Querydata) {
return server.request({
url: '/cloud/batterystation/dj/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/batterystation/dj/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,78 @@
import server from '@/utils/request'
//新增
interface Addobj{
pkId?:String
proxyId:String //归属运营商ID
name:String //站点名称
code:String //站点编码
status:String|Number //状态1-正常营业2-正常停运3-故障停运4-指令停运9-其它
type?:String //站点类型ID
division?:String, //地区 ??
divisionNo?:String, //地区编码 ??
address?:String //地址
addressProvince?:String //地址-省
addressCity?:String //地址-市 query
addressArea?:String //地址-区县
registerDate?:String //注册日期
contacts?:String //联系人
phone?:String //联系电话
delFlag?:String|Number //删除标识1-已删除0-未删除
activeDate?:String //激活日期
locationPoint?:String //经纬度信息
openAllDay?:String|Number //全天营业1-是0-否
tdQuantity?:String|Number //通道数
jqrQuantity?:String|Number //机器人数量
cdjQuantity?:String|Number //充电机数量
dccQuantity?:String|Number //电池仓数量
dcQuantity?:String|Number //电池数量
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/batterystation/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/batterystation/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
proxyId:String //归属运营商ID
pkId?:String
name?:String //站点名称
code?:String //站点编码
status?:String //状态1-正常营业2-正常停运3-故障停运4-指令停运9-其它
type?:String //站点类型ID
}
export function gethdzlist(params:Querydata) {
return server.request({
url: '/cloud/batterystation/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/batterystation/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,54 @@
import server from '@/utils/request'
//新增
interface Addobj{
pkId?:String
stationCode:String //换电站编码
code:String //机器人编码
status:String|Number //状态1-正常 2-禁用
runMode:String|Number //运行模式1-就地2-远程
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/batterystation/robot/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/batterystation/robot/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
stationCode:String //换电站编码
}
export function getjqrlist(params:Querydata) {
return server.request({
url: '/cloud/batterystation/robot/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/batterystation/robot/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,59 @@
import server from '@/utils/request'
//新增
interface Addobj{
stationCode:String //换电站编码
dayBegin:String //开始时间
dayEnd:String //结束时间
name:String //费用标准名称
pkId?:String
stationName:String //换电站名称
commonRemainFee?:String //正常换电服务费
commonRemainSocRange?:String //换电时正常电量范围
moreRemainSoc?:String //换电时电量剩余过多的soc界定
moreRemainFee?:String //换电时电量剩余过多的服务费
fewRemainSoc?:String //换电时电量剩余一般的soc界定
fewRemainFee?:String //换电时电量剩余一般的服务费
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/batterystation/fee/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/batterystation/fee/update',
method: 'post',
data
})
}
//查询
interface Querydata{
stationCode:String //换电站编码
}
export function getjqrlist(params:Querydata) {
return server.request({
url: '/cloud/batterystation/fee/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/batterystation/fee/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,78 @@
import server from '@/utils/request'
//新增
interface Addobj{
typeCode:String //车辆型号编码
vinNo:String //车辆识别代码VIN号
frameworkNo:String //车架号
ownerType:String|Number //车主类型1-个人2-企业
ownerName:String //车主名称
plateNum:String //车牌号
engineNo:String //引擎号
usageType:String //消费方式1-电量2-里程
pkId?:String
ownerId?:String //车主ID
seatsCount?:String //座位数
carColor?:String //车身颜色
carArea?:String //车籍/归属地
productionDate?:String //出厂日期
purchaseDate?:String //购车日期
boardDate?:String //上牌日期
registrationDate?:String //首次登记日期
totalMileage?:String //总里程
phone?:String //联系电话
cname?:String //公司名称
ccode?:String //组织机构代码
}
export function addhdz(data:Addobj) {
return server.request({
url: '/cloud/vehicle/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/cloud/vehicle/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
typeCode?:String //型号编码
vinNo?:String //车辆识别代码VIN号
frameworkNo?:String //车架号
ownerType?:String //车主类型1-个人2-企业
ownerId?:String //车主ID
ownerName?:String //车主名称
plateNum?:String //车牌号
phone?:String //联系电话
engineNo?:String //引擎号
}
export function getjqrlist(params:Querydata) {
return server.request({
url: '/cloud/vehicle/list',
method: 'get',
params
})
}
//删除
export function delhdz(id:string) {
return server.request({
url: '/cloud/vehicle/del',
method: 'post',
data:{
id
}
})
}

68
src/api/system/config.ts Normal file
View File

@ -0,0 +1,68 @@
import server from "@/utils/request";
import type { QueryParam } from "../form";
export type SysConfigObj = {
configId?: string;
configName?: string;
configKey?: string;
configValue?: string;
configType?: string;
remark?: string;
};
// 查询参数列表
export function listConfig(query: SysConfigObj & QueryParam) {
return server.request<SysConfigObj>({
url: "/system/config/list",
method: "get",
params: query,
});
}
// 查询参数详细
export function getConfig(configId: string) {
return server.request<SysConfigObj>({
url: "/system/config/" + configId,
method: "get",
});
}
// 根据参数键名查询参数值
export function getConfigKey(configKey: string) {
return server.request({
url: "/system/config/configKey/" + configKey,
method: "get",
});
}
// 新增参数配置
export function addConfig(data: SysConfigObj) {
return server.request({
url: "/system/config",
method: "post",
data: data,
});
}
// 修改参数配置
export function updateConfig(data: SysConfigObj) {
return server.request({
url: "/system/config",
method: "put",
data: data,
});
}
// 删除参数配置
export function delConfig(configId: string) {
return server.request({
url: "/system/config/" + configId,
method: "delete",
});
}
// 刷新参数缓存
export function refreshCache() {
return server.request({
url: "/system/config/refreshCache",
method: "delete",
});
}

70
src/api/system/dept.ts Normal file
View File

@ -0,0 +1,70 @@
import server from "@/utils/request";
export type DeptObj = {
deptId: string;
parentId?: string;
deptName?: string;
orderNum?: number;
leader?: string;
phone?: string;
email?: string;
status?: string;
children?: DeptObj[];
};
export type TreeDeptObj = {
id: number;
label: string;
children?: TreeDeptObj[];
};
// 查询部门列表
export function listDept(query?: DeptObj) {
return server.request<DeptObj[]>({
url: "/system/dept/list",
method: "get",
params: query,
});
}
// 查询部门列表(排除节点)
export function listDeptExcludeChild(deptId: string) {
return server.request<DeptObj[]>({
url: "/system/dept/list/exclude/" + deptId,
method: "get",
});
}
// 查询部门详细
export function getDept(deptId: string) {
return server.request<DeptObj>({
url: "/system/dept/" + deptId,
method: "get",
});
}
// 新增部门
export function addDept(data: DeptObj) {
return server.request({
url: "/system/dept",
method: "post",
data: data,
});
}
// 修改部门
export function updateDept(data: DeptObj) {
return server.request({
url: "/system/dept",
method: "put",
data: data,
});
}
// 删除部门
export function delDept(deptId: string) {
return server.request({
url: "/system/dept/" + deptId,
method: "delete",
});
}

View File

@ -0,0 +1,75 @@
import server from "@/utils/request";
import type { DictTypeObj } from "./type";
export type DictObj = {
createBy?: string;
createTime?: string;
updateBy?: string;
updateTime?: string;
remark?: string;
dictCode: string;
dictSort?: number;
dictLabel: string;
dictValue: string;
dictType: string;
cssClass?: string;
listClass?: string;
isDefault?: string;
elTagType?: string;
elTagClass?: string;
status?: string;
default?: boolean;
label?: string;
value?: string;
};
// 查询字典数据列表
export function listData(query: DictTypeObj & { pageNum: number; pageSize: number }) {
return server.request<DictObj>({
url: "/system/dict/data/list",
method: "get",
params: query,
});
}
// 查询字典数据详细
export function getData(dictCode: string) {
return server.request<DictObj>({
url: "/system/dict/data/" + dictCode,
method: "get",
});
}
// 根据字典类型查询字典数据信息
export function getDicts(dictType: string) {
return server.request<DictObj[]>({
url: "/system/dict/data/type/" + dictType,
method: "get",
});
}
// 新增字典数据
export function addData(data: DictObj) {
return server.request({
url: "/system/dict/data",
method: "post",
data: data,
});
}
// 修改字典数据
export function updateData(data: DictObj) {
return server.request({
url: "/system/dict/data",
method: "put",
data: data,
});
}
// 删除字典数据
export function delData(dictCode: string) {
return server.request({
url: "/system/dict/data/" + dictCode,
method: "delete",
});
}

View File

@ -0,0 +1,69 @@
import type { QueryParam } from "@/api/form";
import server from "@/utils/request";
export type DictTypeObj = {
dictId?: string;
dictName?: string;
dictType?: string;
status?: string;
remark?: string;
};
// 查询字典类型列表
export function listType(query: DictTypeObj & QueryParam) {
return server.request<DictTypeObj>({
url: "/system/dict/type/list",
method: "get",
params: query,
});
}
// 查询字典类型详细
export function getType(dictId: string) {
return server.request<DictTypeObj>({
url: "/system/dict/type/" + dictId,
method: "get",
});
}
// 新增字典类型
export function addType(data: DictTypeObj) {
return server.request({
url: "/system/dict/type",
method: "post",
data: data,
});
}
// 修改字典类型
export function updateType(data: DictTypeObj) {
return server.request({
url: "/system/dict/type",
method: "put",
data: data,
});
}
// 删除字典类型
export function delType(dictId: string) {
return server.request({
url: "/system/dict/type/" + dictId,
method: "delete",
});
}
// 刷新字典缓存
export function refreshCache() {
return server.request({
url: "/system/dict/type/refreshCache",
method: "delete",
});
}
// 获取字典选择框列表
export function optionselect() {
return server.request<DictTypeObj[]>({
url: "/system/dict/type/optionselect",
method: "get",
});
}

83
src/api/system/menu.ts Normal file
View File

@ -0,0 +1,83 @@
import server from "@/utils/request";
export type MenuObj = {
menuId: string;
parentId?: string;
menuName?: string;
icon?: string;
menuType?: string;
orderNum?: string;
isFrame?: string;
isCache?: string;
visible?: string;
status?: string;
query?: string;
perms?: string;
component?: string;
path?: string;
children?: MenuObj[];
};
export type TreeMenuObj = {
id: number;
label: string;
children?: TreeMenuObj[];
};
// 查询菜单列表
export function listMenu(query?: MenuObj) {
return server.request<MenuObj[]>({
url: "/system/menu/list",
method: "get",
params: query,
});
}
// 查询菜单详细
export function getMenu(menuId: string) {
return server.request<MenuObj>({
url: "/system/menu/" + menuId,
method: "get",
});
}
// 查询菜单下拉树结构
export function treeselect() {
return server.request<TreeMenuObj[]>({
url: "/system/menu/treeselect",
method: "get",
});
}
// 根据角色ID查询菜单下拉树结构
export function roleMenuTreeselect(roleId: string) {
return server.requestT<{ menus: TreeMenuObj[]; checkedKeys: number[] }>({
url: "/system/menu/roleMenuTreeselect/" + roleId,
method: "get",
});
}
// 新增菜单
export function addMenu(data: MenuObj) {
return server.request({
url: "/system/menu",
method: "post",
data: data,
});
}
// 修改菜单
export function updateMenu(data: MenuObj) {
return server.request({
url: "/system/menu",
method: "put",
data: data,
});
}
// 删除菜单
export function delMenu(menuId: string) {
return server.request({
url: "/system/menu/" + menuId,
method: "delete",
});
}

53
src/api/system/notice.ts Normal file
View File

@ -0,0 +1,53 @@
import server from "@/utils/request";
export type NoticeObj = {
noticeId: string;
noticeTitle?: string;
noticeType?: string;
createBy?: string;
noticeContent?: string;
status?: string;
};
// 查询公告列表
export function listNotice(query: NoticeObj & { pageNum: number; pageSize: number }) {
return server.request<NoticeObj>({
url: "/system/notice/list",
method: "get",
params: query,
});
}
// 查询公告详细
export function getNotice(noticeId: string) {
return server.request<NoticeObj>({
url: "/system/notice/" + noticeId,
method: "get",
});
}
// 新增公告
export function addNotice(data: NoticeObj) {
return server.request({
url: "/system/notice",
method: "post",
data: data,
});
}
// 修改公告
export function updateNotice(data: NoticeObj) {
return server.request({
url: "/system/notice",
method: "put",
data: data,
});
}
// 删除公告
export function delNotice(noticeId: string) {
return server.request({
url: "/system/notice/" + noticeId,
method: "delete",
});
}

52
src/api/system/post.ts Normal file
View File

@ -0,0 +1,52 @@
import server from "@/utils/request";
export type PostObj = {
postId: string;
postCode?: string;
postName?: string;
postSort?: number;
status?: string;
remark?: string;
};
// 查询岗位列表
export function listPost(query: PostObj & { pageNum: number; pageSize: number }) {
return server.request<PostObj>({
url: "/system/post/list",
method: "get",
params: query,
});
}
// 查询岗位详细
export function getPost(postId: string) {
return server.request<PostObj>({
url: "/system/post/" + postId,
method: "get",
});
}
// 新增岗位
export function addPost(data: PostObj) {
return server.request({
url: "/system/post",
method: "post",
data: data,
});
}
// 修改岗位
export function updatePost(data: PostObj) {
return server.request({
url: "/system/post",
method: "put",
data: data,
});
}
// 删除岗位
export function delPost(postId: string) {
return server.request({
url: "/system/post/" + postId,
method: "delete",
});
}

139
src/api/system/role.ts Normal file
View File

@ -0,0 +1,139 @@
import server from "@/utils/request";
import type { TreeDeptObj } from "./dept";
import type { UserInfoObj } from "./user";
import type { QueryParam } from "../form";
import type { TreeKey } from "element-plus/es/components/tree/src/tree.type";
export type RoleObj = {
roleId: string;
roleName?: string;
roleKey?: string;
createTime?: string;
flag?: boolean;
dataScope?: number;
status?: string;
roleSort?: number;
menuIds?: TreeKey[];
deptIds?: TreeKey[];
menuCheckStrictly?: boolean;
deptCheckStrictly?: boolean;
remark?: string;
};
// 查询角色列表
export function listRole(query: RoleObj & QueryParam) {
return server.request<RoleObj>({
url: "/system/role/list",
method: "get",
params: query,
});
}
// 查询角色详细
export function getRole(roleId: string) {
return server.request<RoleObj>({
url: "/system/role/" + roleId,
method: "get",
});
}
// 新增角色
export function addRole(data: RoleObj) {
return server.request({
url: "/system/role",
method: "post",
data: data,
});
}
// 修改角色
export function updateRole(data: RoleObj) {
return server.request({
url: "/system/role",
method: "put",
data: data,
});
}
// 角色数据权限
export function dataScope(data: RoleObj) {
return server.request({
url: "/system/role/dataScope",
method: "put",
data: data,
});
}
// 角色状态修改
export function changeRoleStatus(roleId: string, status: string) {
const data = {
roleId,
status,
};
return server.request({
url: "/system/role/changeStatus",
method: "put",
data: data,
});
}
// 删除角色
export function delRole(roleId: string) {
return server.request({
url: "/system/role/" + roleId,
method: "delete",
});
}
// 查询角色已授权用户列表
export function allocatedUserList(query: { pageNum: number; pageSize: number; roleId: string; userName: string; phonenumber: string }) {
return server.request<UserInfoObj>({
url: "/system/role/authUser/allocatedList",
method: "get",
params: query,
});
}
// 查询角色未授权用户列表
export function unallocatedUserList(query: RoleObj) {
return server.request<UserInfoObj>({
url: "/system/role/authUser/unallocatedList",
method: "get",
params: query,
});
}
// 取消用户授权角色
export function authUserCancel(data: { userId: string; roleId: string }) {
return server.request({
url: "/system/role/authUser/cancel",
method: "put",
data: data,
});
}
// 批量取消用户授权角色
export function authUserCancelAll(data: { roleId: string; userIds: string }) {
return server.request({
url: "/system/role/authUser/cancelAll",
method: "put",
params: data,
});
}
// 授权用户选择
export function authUserSelectAll(data: { roleId: string; userIds: string }) {
return server.request({
url: "/system/role/authUser/selectAll",
method: "put",
params: data,
});
}
// 根据角色ID查询部门树结构
export function deptTreeSelect(roleId: string) {
return server.requestT<{ depts: TreeDeptObj[]; checkedKeys: number[] }>({
url: "/system/role/deptTree/" + roleId,
method: "get",
});
}

167
src/api/system/user.ts Normal file
View File

@ -0,0 +1,167 @@
import server from "@/utils/request";
import { parseStrEmpty } from "@/utils/ruoyi";
import type { RoleObj } from "./role";
import type { DeptObj } from "./dept";
import type { PostObj } from "./post";
import type { QueryParam } from "../form";
export type UserInfoObj = {
userId: string;
avatar?: string;
deptId?: string;
nickName?: string;
userName?: string;
phonenumber?: string;
password?: string;
email?: string;
sex?: string;
createTime?: string;
status?: string;
remark?: string;
dept?: DeptObj;
postIds?: string[];
roleIds?: string[];
};
// 查询用户列表
export function listUser(query: UserInfoObj & QueryParam) {
return server.request<UserInfoObj>({
url: "/system/user/list",
method: "get",
params: query,
});
}
// 查询用户详细
export function getUser(userId: string) {
return server.requestT<{
data: UserInfoObj;
posts: PostObj[];
roles: RoleObj[];
postIds: string[];
roleIds: string[];
}>({
url: "/system/user/" + parseStrEmpty(userId),
method: "get",
});
}
// 新增用户
export function addUser(data: UserInfoObj) {
return server.request({
url: "/system/user",
method: "post",
data: data,
});
}
// 修改用户
export function updateUser(data: UserInfoObj) {
return server.request({
url: "/system/user",
method: "put",
data: data,
});
}
// 删除用户
export function delUser(userId: string) {
return server.request({
url: "/system/user/" + userId,
method: "delete",
});
}
// 用户密码重置
export function resetUserPwd(userId: string, password: string) {
const data = {
userId,
password,
};
return server.request({
url: "/system/user/resetPwd",
method: "put",
data: data,
});
}
// 用户状态修改
export function changeUserStatus(userId: string, status: string) {
const data = {
userId,
status,
};
return server.request({
url: "/system/user/changeStatus",
method: "put",
data: data,
});
}
// 查询用户个人信息
export function getUserProfile() {
return server.requestT<{
data: UserInfoObj;
roleGroup: string;
postGroup: string;
}>({
url: "/system/user/profile",
method: "get",
});
}
// 修改用户个人信息
export function updateUserProfile(data: UserInfoObj) {
return server.request({
url: "/system/user/profile",
method: "put",
data: data,
});
}
// 用户密码重置
export function updateUserPwd(oldPassword: string, newPassword: string) {
const data = {
oldPassword,
newPassword,
};
return server.request({
url: "/system/user/profile/updatePwd",
method: "put",
params: data,
});
}
// 用户头像上传
export function uploadAvatar(data: FormData) {
return server.requestT<{ imgUrl: string }>({
url: "/system/user/profile/avatar",
method: "post",
data: data,
});
}
// 查询授权角色
export function getAuthRole(userId: string) {
return server.requestT<{ user: UserInfoObj; roles: RoleObj[] }>({
url: "/system/user/authRole/" + userId,
method: "get",
});
}
// 保存授权角色
export function updateAuthRole(data: { userId: string; roleIds: string }) {
return server.request({
url: "/system/user/authRole",
method: "put",
params: data,
});
}
// 查询部门下拉树结构
export function deptTreeSelect() {
return server.request<DeptObj[]>({
url: "/system/user/deptTree",
method: "get",
});
}

View File

@ -0,0 +1,54 @@
import server from '@/utils/request'
//新增
interface Addobj{
pkId?:String,
typeName:String, //类型名称
typeCode:String, //类型编码
manufacturer:String, //车辆厂商
announceNum:String //公告号
}
export function adddicttype(data:Addobj) {
return server.request({
url: '/resource/cartype/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/resource/cartype/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
}
export function getdicttype(params:Querydata) {
return server.request({
url: '/resource/cartype/list',
method: 'get',
params
})
}
//删除
export function deltype(id:string) {
return server.request({
url: '/resource/cartype/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,62 @@
import server from '@/utils/request'
//查询
interface Query{
pageSize:String|Number //每页条数
pageNo:String|Number //页数
divisionNo?:String //区划编码
}
export function getlist(params:Query) {
return server.request({
url: '/resource/system/company/list',
method: 'get',
params
})
}
//新增
interface Addata{
division:String //区划名称
divisionNo:String //区划编码
cname:String //公司名称
ccode:String //组织机构代码
address?:String //地址
addressProvince?:String //地址-省
addressCity?:String //地址-市
addressArea?:String //地址-区县
contacts?:String //联系人
phone?:String //联系电话
status?:String|Number //状态1-启用0-禁用
logo?:String //logo地址
delFlag?:String //删除标识1-已删除0-未删除
accountBalance?:String //账户余额
}
export function addyunys(data:Addata) {
return server.request({
url: '/resource/system/company/add',
method: 'post',
data
})
}
//修改
export function updateyys(data:Addata) {
return server.request({
url: '/resource/system/company/update',
method: 'post',
data
})
}
//删除
export function delyys(id:String) {
return server.request({
url: '/resource/system/company/del',
method: 'post',
data:{
id
}
})
}

112
src/api/systemSet/dict.ts Normal file
View File

@ -0,0 +1,112 @@
import server from '@/utils/request'
//查询字典类型
interface Dictypequery{
pageSize:String|Number //每页条数
pageNo:Number //页数
typeName?:String //类型名称
typeCode?:String //类型编码
}
export function getdicttype(params:Dictypequery) {
return server.request({
url: '/resource/dict/listtype',
method: 'get',
params
});
}
//新增字典类型
interface Dicttype {
pkId:String
typeName:String //类型名称
typeCode:String //类型编码
mark?:String //描述
}
export function adddicttype(data:Dicttype) {
return server.request({
url: '/resource/dict/addtype',
method: 'post',
data
})
}
//修改字典类型
export function updatetype(data:Dicttype) {
return server.request({
url: '/resource/dict/updatetype',
method: 'post',
data
})
}
//删除字典类型
export function deltype(typeId:String) {
return server.request({
url: '/resource/dict/deltype',
method: 'post',
data:{
typeId
}
})
}
//查询字典值
interface Dictval{
typeId?:String //字典类型id
typeName?:String //字典类型名
typeCode?:String //字典类型编码
dictId?:String //字典id
dictName?:String //字典名
dictCode?:String //字典编码
dictValue?:String //字典值
}
export function getdict(params?:Dictval) {
return server.request({
url: '/resource/dict/listdict',
method: 'get',
params
})
}
interface Dictqs {
typeId:string //类型ID
dictName:string //字典名称
dictCode:string //字典编码
dictValue:string //字典值
sort?:string|Number //排序
typeCode?:string
}
//新增字典值
export function adddict(data:Dictqs) {
return server.request({
url: '/resource/dict/adddict',
method: 'post',
data
})
}
//新增字典值
export function updatedict(data:Dictqs) {
return server.request({
url: '/resource/dict/updatedict',
method: 'post',
data
})
}
//删除字典值
export function dedictval(dictId:String|Number) {
return server.request({
url: '/resource/dict/deldict',
method: 'post',
data:{
dictId
}
})
}

View File

@ -0,0 +1,43 @@
import server from '@/utils/request'
//查询
interface Query{
pageSize?:String|Number //每页条数
pageNo?:String|Number //页数
divisionNo?:String //区划编码
}
export function getlist(params:Query) {
return server.request({
url: '/resource/system/manager/list',
method: 'get',
params
})
}
interface Addata{
division:String //区划名称
divisionNo:String //区划编码
name:String //管理方名称
code:String //组织机构代码
logo:String //logo地址
address:String //地址
addressProvince:String //地址-省
addressCity:String //地址-市
addressArea:String //地址-区县
contacts:String //联系人
phone:String //联系电话
bankName:String //开户行名称
bankAccount:String //银行账户
wechatPayMchid:String //微信支付商户号
}
//修改
export function updateyys(data:Addata) {
return server.request({
url: '/resource/system/manager/update',
method: 'post',
data
})
}

View File

@ -0,0 +1,54 @@
import server from '@/utils/request'
//新增
interface Addobj{
name:String //型号名称
dccNumMin:String //仓位数量下限
dccNumMax:String //仓位数量上限
serviceCapability:String //服务能力
chargerPower:String //充电机功率
autoLevel:String //自动化级别1-无人值守2-有人值守
}
export function adddicttype(data:Addobj) {
return server.request({
url: '/resource/stationtype/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/resource/stationtype/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
}
export function getdicttype(params:Querydata) {
return server.request({
url: '/resource/stationtype/list',
method: 'get',
params
})
}
//删除
export function deltype(id:string) {
return server.request({
url: '/resource/stationtype/del',
method: 'post',
data:{
id
}
})
}

94
src/api/systemSet/menu.ts Normal file
View File

@ -0,0 +1,94 @@
import server from '@/utils/request'
interface Addobj{
name:String //菜单名称
mark:String //功能描述
component:String //对应路由组件component
path:String //对应路由path
status:String|Number //状态
sort:String|Number //排序
icon:String //菜单图标
type:String //菜单类型: 系统-1目录-2页面-3
parentId:String //父级菜单id
pkId?:String
}
//新增
export function addmenu(data:Addobj) {
return server.request({
url: '/resource/menu/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/resource/menu/update',
method: 'post',
data
})
}
//删除
export function delmenu(menuId:String) {
return server.request({
url: '/resource/menu/del',
method: 'post',
data:{
menuId
}
})
}
//新增接口权限
interface AddTnter{
code:String //资源编码:页面:操作 权限标识符
name:String //接口名称
menuId:String //菜单ID
allow:String //允许访问路径gateway-允许网关访问private-不允许网关访问
uri:String //uri路径
requestType:String //请求方式GET/POST/DEL/PUSH
mark:String //接口描述
pkId?:String
}
export function addInter(data:AddTnter) {
return server.request({
url: '/resource/permission/add',
method: 'post',
data
})
}
//修改
export function updateInter(data:AddTnter) {
return server.request({
url: '/resource/permission/update',
method: 'post',
data
})
}
//删除
export function delInter(permissionId:String) {
return server.request({
url: '/resource/permission/del',
method: 'post',
data:{
permissionId
}
})
}
//查询
export function getInter(menuId:String) {
return server.request({
url: '/resource/permission/list',
method: 'get',
params:{
menuId
}
})
}

View File

@ -0,0 +1,59 @@
import server from '@/utils/request'
//新增
interface Addobj{
pkId?:String,
typeName:String //型号名称
typeCode:String //型号编码
batteryCellManuafactory:String //电芯厂商
batteryManuafactory:String //电池包厂商
material:String //电池材料1-三元铁锂2-磷酸铁锂
connectionMode:String //连接方式
capacity:String //标称容量单位千瓦时kWh
voltage:String //标称电压单位伏特V
weight:String //重量,单位克
size:String //尺寸,长宽高
}
export function adddicttype(data:Addobj) {
return server.request({
url: '/resource/batterytype/add',
method: 'post',
data
})
}
//修改
export function update(data:Addobj) {
return server.request({
url: '/resource/batterytype/update',
method: 'post',
data
})
}
//查询
interface Querydata{
pageSize:String|number, //每页条数
pageNo:String|number //页数
}
export function getdicttype(params:Querydata) {
return server.request({
url: '/resource/batterytype/list',
method: 'get',
params
})
}
//删除
export function deltype(id:string) {
return server.request({
url: '/resource/batterytype/del',
method: 'post',
data:{
id
}
})
}

View File

@ -0,0 +1,64 @@
import server from '@/utils/request'
//查询
interface Query{
pageSize:String|Number //每页条数
pageNo:String|Number //页数
divisionNo?:String //区划编码
poname?:String //运营商名称
pocode?:String //运营商组织机构代码
status?:String //状态1-启用0-禁用
}
export function getlist(params:Query) {
return server.request({
url: '/resource/proxyoperater/list',
method: 'get',
params
})
}
//新增
interface Addata{
division:String //区划名称
divisionNo:String //区划编码
poname:String //运营商名称
pocode:String //运营商组织机构代码
address?:String //地址
addressProvince?:String //地址-省
addressCity?:String //地址-市
addressArea?:String //地址-区县
contacts?:String //联系人
phone?:String //联系电话
status?:String|Number //状态1-启用0-禁用
readonly?:String|Number //只读1-是0-否
stationCount?:String //换电站数量
}
export function addyunys(data:Addata) {
return server.request({
url: '/resource/proxyoperater/add',
method: 'post',
data
})
}
//修改
export function updateyys(data:Addata) {
return server.request({
url: '/resource/proxyoperater/update',
method: 'post',
data
})
}
//删除
export function delyys(id:String) {
return server.request({
url: '/resource/proxyoperater/del',
method: 'post',
data:{
id
}
})
}

80
src/api/systemSet/role.ts Normal file
View File

@ -0,0 +1,80 @@
import server from '@/utils/request'
//新增
interface Addobj{
pkId:String
name:String //角色名称
rcode:String //角色编码
mark:String //功能描述
status:String|Number //状态
type:String|Number //角色类型1-开发者2-运营方3-客户
readonly:String|Number //是否内置角色,内置角色不允许修改
}
export function addrole(data:Addobj) {
return server.request({
url: '/resource/role/add',
method: 'post',
data
})
}
//修改
export function updaterole(data:Addobj) {
return server.request({
url: '/resource/role/update',
method: 'post',
data
})
}
//删除
export function delrole(rid:String) {
return server.request({
url: '/resource/role/del',
method: 'post',
data:{
rid
}
})
}
//查询
export function getlist(userId:String) {
return server.request({
url: '/resource/role/list',
method: 'get',
params:{
userId
}
})
}
//全量新增资源权限
interface Addquanx{
rcode:String, //角色编码
types:String //类型,不同类型之间用';' SYS-系统MENU-菜单PER-资源权限 示例 SYS;MENU;PER
sourceIds:String //资源ID。同一类型之间用','隔开,不同类型之间用';'隔开与type对应 跟types顺序保持一致 示例 123,4561;asd,sdd;ms11,4d4s
}
export function allAddpermi(data:Addquanx) {
return server.request({
url: '/resource/role/deladdrolesource',
method: 'post',
data
})
}
//查询角色资源
interface Qsobj{
rcode:String //角色编码
resourceType:String //资源类型
}
export function getinter(data:Qsobj) {
return server.request({
url: '/resource/role/listrolesource',
method: 'post',
data
})
}

89
src/api/systemSet/user.ts Normal file
View File

@ -0,0 +1,89 @@
import server from '@/utils/request'
//新增用户
interface User{
uname:String //账号
type:String|Number //账号类型1-开发者2-运营方3-客户
password:String // 密码
status:String|Number //状态1-启用0-禁用
uid?:String //用户ID修改时用
typeRelateCode?:String //关联方代码
name?:String //姓名
email?:String //邮箱
phone?:String //手机号码
sex?:String|Number //性别
readonly?:String|Number //是否内置账号,内置账号不允许动
avatar?:String //头像
}
//新增
export function adduser(data:User) {
return server.request({
url: '/resource/user/add',
method: 'post',
data
})
}
interface Userquery{
pageSize:String|Number //每页条数
pageNo:String|Number //页数
uname?:String //账号
typeRelateCode?:String //关联方代码
name?:String //姓名
phone?:String //手机
}
//查询
export function getuser(params:Userquery) {
return server.request({
url: '/resource/user/list',
method: 'get',
params
})
}
//修改
export function updateuser(data:User) {
return server.request({
url: '/resource/user/update',
method: 'post',
data
})
}
//删除
export function deleteuser(data:String) {
return server.request({
url: '/resource/user/del',
method: 'post',
data
})
}
//查询角色 ??
// export function getrolelist(userId:String) {
// return server.request({
// url: '/resource/role/list',
// method: 'get',
// params:{
// userId
// }
// })
// }
//给用户分配角色
interface Addrole{
uid:String //用户ID
rcode:String //角色编码
pkId?:String
}
export function adduserrole(data:Addrole) {
return server.request({
url: '/resource/user/adduserrole',
method: 'post',
data
})
}

121
src/api/tool/gen.ts Normal file
View File

@ -0,0 +1,121 @@
import server from "@/utils/request";
import type { QueryParam } from "../form";
export type GenEColumn = {
columnName?: string;
columnComment?: string;
};
export type GenTColumn = {
tableName?: string;
tableComment?: string;
columns?: GenEColumn[];
};
export type GenInfoObj = {
subTableName?: string;
subTableFkName?: string;
tplWebType?: string;
tplCategory?: string;
packageName?: string;
moduleName?: string;
businessName?: string;
functionName?: string;
treeName?: string;
genType?: string;
parentMenuId?: string;
genPath?: string;
treeCode?: string;
columns?: GenEColumn[];
treeParentCode?: string;
params?: {
treeCode?: string;
treeName?: string;
treeParentCode?: string;
parentMenuId?: string;
};
tableId?: string;
tableName?: string;
tableComment?: string;
className?: string;
functionAuthor?: string;
remark?: string;
};
// 查询生成表数据
export function listTable(query: GenTColumn & QueryParam) {
return server.request<GenInfoObj>({
url: "/tool/gen/list",
method: "get",
params: query,
});
}
// 查询db数据库列表
export function listDbTable(query: GenTColumn & QueryParam) {
return server.request<GenInfoObj>({
url: "/tool/gen/db/list",
method: "get",
params: query,
});
}
// 查询表详细信息
export function getGenTable(tableId: string) {
return server.request<{
rows?: GenEColumn[];
info?: GenInfoObj;
tables?: GenTColumn[];
}>({
url: "/tool/gen/" + tableId,
method: "get",
});
}
// 修改代码生成信息
export function updateGenTable(data: GenInfoObj) {
return server.request({
url: "/tool/gen",
method: "put",
data: data,
});
}
// 导入表
export function importTable(data: { tables: string }) {
return server.request({
url: "/tool/gen/importTable",
method: "post",
params: data,
});
}
// 预览生成代码
export function previewTable(tableId: string) {
return server.request<{ [key: string]: string }>({
url: "/tool/gen/preview/" + tableId,
method: "get",
});
}
// 删除表数据
export function delTable(tableId: string) {
return server.request({
url: "/tool/gen/" + tableId,
method: "delete",
});
}
// 生成代码(自定义路径)
export function genCode(tableName: string) {
return server.request({
url: "/tool/gen/genCode/" + tableName,
method: "get",
});
}
// 同步数据库
export function synchDb(tableName: string) {
return server.request({
url: "/tool/gen/synchDb/" + tableName,
method: "get",
});
}

View File

@ -0,0 +1,60 @@
import server from "@/utils/request";
import type { QueryParam } from "../../form";
export type ActDefinitionObj = {
id: string;
key?: string;
name?: string;
category?: string;
version?: string;
description?: string;
deploymentId?: string;
suspendState?: number;
};
// 查询ActDefinition列表
export function listDefinition(query: ActDefinitionObj & QueryParam) {
return server.request<ActDefinitionObj>({
url: "/activiti/processDefinition/list",
method: "get",
params: query,
});
}
// 挂起激活转换
export function suspendOrActiveApply(data: ActDefinitionObj) {
return server.request({
url: "/activiti/processDefinition/suspendOrActiveApply",
method: "post",
data: data,
});
}
// 删除ActDefinition
export function delDefinition(id: string) {
return server.request({
url: "/activiti/processDefinition/remove/" + id,
method: "delete",
});
}
// 流程定义转成模型
export function convert2Model(data: { processDefinitionId: string }) {
return server.request({
url: "/activiti/processDefinition/convert2Model",
method: "post",
params: data,
});
}
// 上传并部署流程定义
export function uploadDefinition(data: { file: File }) {
return server.request({
url: "/activiti/processDefinition/upload",
method: "post",
headers: {
"Content-Type": "multipart/form-data",
},
data: data,
});
}

View File

@ -0,0 +1,19 @@
import server from "@/utils/request";
export type ApprovalHisObj = {
id: string;
taskNodeName?: string;
createName?: string;
createdDate?: string;
formHistoryDataDTO?: {
title?: string;
value?: string;
}[];
};
// 查询请假详细
export function historyFromData(instanceId: string) {
return server.request<ApprovalHisObj[]>({
url: "/historyFromData/ByInstanceId/" + instanceId,
method: "get",
});
}

View File

@ -0,0 +1,81 @@
import server from "@/utils/request";
import type { QueryParam } from "../../form";
export type XmlMetaInfo = {
key?: string;
name?: string;
description?: string;
version?: number;
};
export type ActModelerObj = {
id: string;
key?: string;
name?: string;
version?: string;
createTime?: string;
lastUpdateTime?: string;
description?: string;
bpmnXml?: string;
svgXml?: string;
metaInfo?: string;
};
// 查询模型列表
export function listModeler(query: ActModelerObj & QueryParam) {
return server.request<ActModelerObj>({
url: "/activiti/modeler/list",
method: "get",
params: query,
});
}
// 新增模型
export function addModeler(data: ActModelerObj) {
return server.request<string>({
url: "/activiti/modeler/create",
method: "post",
params: data,
});
}
// 删除模型
export function delModeler(modelId: string) {
return server.request({
url: "/activiti/modeler/remove/" + modelId,
method: "delete",
});
}
// 导出模型
export function exportModeler(modelId: string) {
return server.request({
url: "/activiti/modeler/export/" + modelId,
method: "get",
});
}
// 部署模型
export function deployModeler(modelId: string) {
return server.request({
url: "/activiti/modeler/deploy/" + modelId,
method: "get",
});
}
// 获取Modeler详情
export function getModelerDetail(modelId: string) {
return server.request<ActModelerObj>({
url: "/activiti/modeler/detail/" + modelId,
method: "get",
});
}
// 部署模型
export function updateModeler(data: ActModelerObj) {
return server.request({
url: "/activiti/modeler/save",
method: "put",
data: data,
});
}

View File

@ -0,0 +1,103 @@
import server from "@/utils/request";
import type { QueryParam } from "../../form";
export type ActTaskObj = {
taskId?: string;
taskName?: string;
taskContent?: string;
procDefId?: string;
instanceId?: string;
definitionKey?: string;
businessKey?: string;
instanceName?: string;
createUser?: string;
createUserName?: string;
startTime?: string;
endTime?: string;
status?: string;
};
export type TaskHistoryObj = {
actId?: string;
actName?: string;
actType?: string;
actKey?: string;
definitionKey?: string;
businessKey?: string;
instanceId?: string;
instanceName?: string;
assignee?: string;
assigneeName?: string;
startTime?: string;
endTime?: string;
status?: string;
pass?: string;
reason?: string;
department?: string;
actParams?: string;
actParamsObj?: { [key: string]: string };
};
// 查询已办任务列表
export function queryDoneList(query: ActTaskObj & QueryParam) {
return server.request<ActTaskObj>({
url: "/activiti/task/doneList",
method: "get",
params: query,
});
}
// 查询待办办任务列表
export function queryTodoList(query: ActTaskObj & QueryParam) {
return server.request<ActTaskObj>({
url: "/activiti/task/todoList",
method: "get",
params: query,
});
}
// 查询我的流程列表
export function queryMyProcess(query: ActTaskObj & QueryParam) {
return server.request<ActTaskObj>({
url: "/activiti/task/myProcessList",
method: "get",
params: query,
});
}
// 查询流程图相关数据
export function queryViewerData(params: { procDefId: string; instanceId: string }) {
return server.request<{ bpmnXml: string; actList: TaskHistoryObj[] }>({
url: `/activiti/task/viewerData`,
method: "get",
params: params,
});
}
// 查询历史审批
export function queryHistoryList(query: TaskHistoryObj & QueryParam) {
return server.request<TaskHistoryObj>({
url: "/activiti/task/historyList",
method: "get",
params: query,
});
}
// 审批任务
export function complete(params: { taskId: string; pass: string; comment?: string }) {
return server.request<ActTaskObj>({
url: "/activiti/task/complete",
method: "post",
data: params,
});
}
// 查询已办任务列表
export function queryTaskCount() {
return server.get<{
todoCount: number;
doneCount: number;
myProcessCount: number;
finishCount: number;
}>("/activiti/task/taskCount");
}

70
src/api/workflow/leave.ts Normal file
View File

@ -0,0 +1,70 @@
import server from "@/utils/request";
import type { QueryParam } from "../form";
export type LeaveObj = {
id: string;
createName?: string;
processType?: string;
department?: string;
type?: string;
title?: string;
reason?: string;
leaveStartTime?: string;
leaveEndTime?: string;
instanceId?: string;
state?: string;
createBy?: string;
createTime?: string;
updateTime?: string;
};
// 查询请假列表
export function listLeave(query: LeaveObj & QueryParam) {
return server.request<LeaveObj>({
url: "/workflow/leave/list",
method: "get",
params: query,
});
}
// 查询请假详细
export function getLeave(id: string) {
return server.request<LeaveObj>({
url: "/workflow/leave/" + id,
method: "get",
});
}
// 新增请假
export function addLeave(data: LeaveObj) {
return server.request({
url: "/workflow/leave",
method: "post",
data: data,
});
}
// 修改请假
export function updateLeave(data: LeaveObj) {
return server.request({
url: "/workflow/leave",
method: "put",
data: data,
});
}
// 删除请假
export function delLeave(id: LeaveObj) {
return server.request({
url: "/workflow/leave/" + id,
method: "delete",
});
}
// 导出请假
export function exportLeave(query: LeaveObj) {
return server.request({
url: "/workflow/leave/export",
method: "get",
params: query,
});
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

74
src/assets/base.css Normal file
View File

@ -0,0 +1,74 @@
/* color palette from <https://github.com/vuejs/theme> */
:root {
--vt-c-white: #ffffff;
--vt-c-white-soft: #f8f8f8;
--vt-c-white-mute: #f2f2f2;
--vt-c-black: #181818;
--vt-c-black-soft: #222222;
--vt-c-black-mute: #282828;
--vt-c-indigo: #2c3e50;
--vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
--vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
--vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
--vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
--vt-c-text-light-1: var(--vt-c-indigo);
--vt-c-text-light-2: rgba(60, 60, 60, 0.66);
--vt-c-text-dark-1: var(--vt-c-white);
--vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
}
/* semantic color variables for this project */
:root {
--color-background: var(--vt-c-white);
--color-background-soft: var(--vt-c-white-soft);
--color-background-mute: var(--vt-c-white-mute);
--color-border: var(--vt-c-divider-light-2);
--color-border-hover: var(--vt-c-divider-light-1);
--color-heading: var(--vt-c-text-light-1);
--color-text: var(--vt-c-text-light-1);
--section-gap: 160px;
}
@media (prefers-color-scheme: dark) {
:root {
--color-background: var(--vt-c-black);
--color-background-soft: var(--vt-c-black-soft);
--color-background-mute: var(--vt-c-black-mute);
--color-border: var(--vt-c-divider-dark-2);
--color-border-hover: var(--vt-c-divider-dark-1);
--color-heading: var(--vt-c-text-dark-1);
--color-text: var(--vt-c-text-dark-2);
}
}
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
position: relative;
font-weight: normal;
}
body {
min-height: 100vh;
color: var(--color-text);
background: var(--color-background);
transition: color 0.5s, background-color 0.5s;
line-height: 1.6;
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
font-size: 15px;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M121.718 73.272v9.953c3.957-7.584 6.199-16.05 6.199-24.995C127.917 26.079 99.273 0 63.958 0 28.644 0 0 26.079 0 58.23c0 .403.028.806.028 1.21l22.97-25.953h13.34l-19.76 27.187h6.42V53.77l13.728-19.477v49.361H22.998V73.272H2.158c5.951 20.284 23.608 36.208 45.998 41.399-1.44 3.3-5.618 11.263-12.565 12.674-8.607 1.764 23.358.428 46.163-13.178 17.519-4.611 31.938-15.849 39.77-30.513h-13.506V73.272H85.02V59.464l22.998-25.977h13.008l-19.429 27.187h6.421v-7.433l13.727-19.402v39.433h-.027zm-78.24 2.822a10.516 10.516 0 0 1-.996-4.535V44.548c0-1.613.332-3.124.996-4.535a11.66 11.66 0 0 1 2.713-3.68c1.134-1.032 2.49-1.864 4.04-2.468 1.55-.605 3.21-.908 4.982-.908h11.292c1.77 0 3.431.303 4.981.908 1.522.604 2.85 1.41 3.986 2.418l-12.26 16.303v-2.898a1.96 1.96 0 0 0-.665-1.512c-.443-.403-.996-.604-1.66-.604-.665 0-1.218.201-1.661.604a1.96 1.96 0 0 0-.664 1.512v9.071L44.364 77.606a10.556 10.556 0 0 1-.886-1.512zm35.73-4.535c0 1.613-.332 3.124-.997 4.535a11.66 11.66 0 0 1-2.712 3.68c-1.134 1.032-2.49 1.864-4.04 2.469-1.55.604-3.21.907-4.982.907H55.185c-1.77 0-3.431-.303-4.981-.907-1.55-.605-2.906-1.437-4.041-2.47a12.49 12.49 0 0 1-1.384-1.512l13.727-18.217v6.375c0 .605.222 1.109.665 1.512.442.403.996.604 1.66.604.664 0 1.218-.201 1.66-.604a1.96 1.96 0 0 0 .665-1.512V53.87L75.97 36.838c.913.932 1.66 1.99 2.214 3.175.664 1.41.996 2.922.996 4.535v27.011h.028z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 20 20"><g fill="none"><path d="M18 9.5a.5.5 0 0 1-.5.5H16v2a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-2H9v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4H2.5a.5.5 0 0 1 0-1H4V5a2 2 0 0 1 2-2h1a2 2 0 0 1 2 2v4h2V7a2 2 0 0 1 2-2h1a2 2 0 0 1 2 2v2h1.5a.5.5 0 0 1 .5.5zM5 14a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v9zm7-2a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1v5z" fill="currentColor"></path></g></svg>

After

Width:  |  Height:  |  Size: 517 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 20 20"><g fill="none"><path d="M10.5 18a.5.5 0 0 1-.5-.5V16H8a2 2 0 0 1-2-2v-1a2 2 0 0 1 2-2h2V9H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h4V2.5a.5.5 0 0 1 1 0V4h4a2 2 0 0 1 2 2v1a2 2 0 0 1-2 2h-4v2h2a2 2 0 0 1 2 2v1a2 2 0 0 1-2 2h-2v1.5a.5.5 0 0 1-.5.5zM6 5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H6zm2 7a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1H8z" fill="currentColor"></path></g></svg>

After

Width:  |  Height:  |  Size: 518 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 20 20"><g fill="none"><path d="M16.5 18a.5.5 0 0 1-.5-.5v-15a.5.5 0 0 1 1 0v15a.5.5 0 0 1-.5.5z" fill="currentColor"></path><path d="M10 4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2zM9 6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V6z" fill="currentColor"></path></g></svg>

After

Width:  |  Height:  |  Size: 409 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 20 20"><g fill="none"><path d="M6 8a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2H6zm-1 2a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-2z" fill="currentColor"></path><path d="M2 16.5a.5.5 0 0 1 .5-.5h15a.5.5 0 0 1 0 1h-15a.5.5 0 0 1-.5-.5z" fill="currentColor"></path></g></svg>

After

Width:  |  Height:  |  Size: 409 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 20 20"><g fill="none"><path d="M3.5 18a.5.5 0 0 1-.5-.5v-15a.5.5 0 0 1 1 0v15a.5.5 0 0 1-.5.5z" fill="currentColor"></path><path d="M8 4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H8zM7 6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V6z" fill="currentColor"></path></g></svg>

After

Width:  |  Height:  |  Size: 405 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 20 20"><g fill="none"><path d="M2 3.5a.5.5 0 0 1 .5-.5h15a.5.5 0 0 1 0 1h-15a.5.5 0 0 1-.5-.5z" fill="currentColor"></path><path d="M6 6a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2H6zM5 8a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V8z" fill="currentColor"></path></g></svg>

After

Width:  |  Height:  |  Size: 405 B

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M127.88 73.143c0 1.412-.506 2.635-1.518 3.669-1.011 1.033-2.209 1.55-3.592 1.55h-17.887c0 9.296-1.783 17.178-5.35 23.645l16.609 17.044c1.011 1.034 1.517 2.257 1.517 3.67 0 1.412-.506 2.635-1.517 3.668-.958 1.033-2.155 1.55-3.593 1.55-1.438 0-2.635-.517-3.593-1.55l-15.811-16.063a15.49 15.49 0 0 1-1.196 1.06c-.532.434-1.65 1.208-3.353 2.322a50.104 50.104 0 0 1-5.192 2.974c-1.758.87-3.94 1.658-6.546 2.364-2.607.706-5.189 1.06-7.748 1.06V47.044H58.89v73.062c-2.716 0-5.417-.367-8.106-1.102-2.688-.734-5.003-1.631-6.945-2.692a66.769 66.769 0 0 1-5.268-3.179c-1.571-1.057-2.73-1.94-3.476-2.65L33.9 109.34l-14.611 16.877c-1.066 1.14-2.344 1.711-3.833 1.711-1.277 0-2.422-.434-3.434-1.304-1.012-.978-1.557-2.187-1.635-3.627-.079-1.44.333-2.705 1.236-3.794l16.129-18.51c-3.087-6.197-4.63-13.644-4.63-22.342H5.235c-1.383 0-2.58-.517-3.592-1.55S.125 74.545.125 73.132c0-1.412.506-2.635 1.518-3.668 1.012-1.034 2.21-1.55 3.592-1.55h17.887V43.939L9.308 29.833c-1.012-1.033-1.517-2.256-1.517-3.669 0-1.412.505-2.635 1.517-3.668 1.012-1.034 2.21-1.55 3.593-1.55s2.58.516 3.593 1.55l13.813 14.106h67.396l13.814-14.106c1.012-1.034 2.21-1.55 3.592-1.55 1.384 0 2.581.516 3.593 1.55 1.012 1.033 1.518 2.256 1.518 3.668 0 1.413-.506 2.636-1.518 3.67l-13.814 14.105v23.975h17.887c1.383 0 2.58.516 3.593 1.55 1.011 1.033 1.517 2.256 1.517 3.668l-.005.01zM89.552 26.175H38.448c0-7.23 2.489-13.386 7.466-18.469C50.892 2.623 56.92.082 64 .082c7.08 0 13.108 2.541 18.086 7.624 4.977 5.083 7.466 11.24 7.466 18.469z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568899741379" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2054" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960 591.424V368.96c0-0.288 0.16-0.512 0.16-0.768S960 367.68 960 367.424V192a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v175.424c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768v222.464c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768V864a32 32 0 0 0 32 32h832a32 32 0 0 0 32-32v-271.04c0-0.288 0.16-0.512 0.16-0.768S960 591.68 960 591.424z m-560-31.232v-160H608v160h-208z m208 64V832h-208v-207.808H608z m-480-224h208v160H128v-160z m544 0h224v160h-224v-160zM896 224v112.192H128V224h768zM128 624.192h208V832H128v-207.808zM672 832v-207.808h224V832h-224z" p-id="2055"></path></svg>

After

Width:  |  Height:  |  Size: 954 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1588670460195" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1314" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M230.4 307.712c13.824 0 25.088-11.264 25.088-25.088 0-100.352 81.92-182.272 182.272-182.272s182.272 81.408 182.272 182.272c0 13.824 11.264 25.088 25.088 25.088s25.088-11.264 24.576-25.088c0-127.488-103.936-231.936-231.936-231.936S205.824 154.624 205.824 282.624c-0.512 14.336 10.752 25.088 24.576 25.088z m564.736 234.496c-11.264 0-21.504 2.048-31.232 6.144 0-44.544-40.448-81.92-88.064-81.92-14.848 0-28.16 3.584-39.936 10.24-13.824-28.16-44.544-48.128-78.848-48.128-12.288 0-24.576 2.56-35.328 7.68V284.16c0-45.568-37.888-81.92-84.48-81.92s-84.48 36.864-84.48 81.92v348.672l-69.12-112.64c-18.432-28.16-58.368-36.864-91.136-19.968-26.624 14.336-46.592 47.104-30.208 88.064 3.072 8.192 76.8 205.312 171.52 311.296 0 0 28.16 24.576 43.008 58.88 4.096 9.728 13.312 15.36 22.528 15.36 3.072 0 6.656-0.512 9.728-2.048 12.288-5.12 18.432-19.968 12.8-32.256-19.456-44.544-53.76-74.752-53.76-74.752C281.6 768 209.408 573.44 208.384 570.88c-5.12-12.8-2.56-20.992 7.168-26.112 9.216-4.608 21.504-4.608 26.112 2.56l113.152 184.32c4.096 8.704 12.8 14.336 22.528 14.336 13.824 0 25.088-10.752 25.088-25.088V284.16c0-17.92 15.36-32.256 34.816-32.256s34.816 14.336 34.816 32.256v284.16c0 13.824 10.24 25.088 24.576 25.088 13.824 0 25.088-11.264 25.088-25.088v-57.344c0-17.92 15.36-32.768 34.816-32.768 19.968 0 37.376 15.36 37.376 32.768v95.232c0 7.168 3.072 13.312 7.68 17.92 4.608 4.608 10.752 7.168 17.92 7.168 13.824 0 24.576-11.264 24.576-25.088V547.84c0-18.432 13.824-32.256 32.256-32.256 20.48 0 38.912 15.36 38.912 32.256v95.232c0 13.824 11.264 25.088 25.088 25.088s24.576-11.264 25.088-25.088v-18.944c0-18.944 12.8-32.256 30.72-32.256 18.432 0 22.528 18.944 22.528 31.744 0 1.024-11.776 99.84-50.688 173.056-30.72 58.368-45.056 112.128-51.2 146.944-2.56 13.312 6.656 26.112 19.968 28.672 1.536 0 3.072 0.512 4.608 0.512 11.776 0 22.016-8.192 24.064-20.48 5.632-31.232 18.432-79.36 46.08-132.608 43.52-81.92 55.808-186.88 56.32-193.536-0.512-50.688-29.696-83.968-72.704-83.968z"></path></path></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576153230908" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="971" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M772.87036133 734.06115723c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714843H475.90991211c-56.60705567 0-102.66723633-46.06018067-102.66723633-102.66723633V600.82446289h305.859375c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012S827.9942627 467.50537109 772.87036133 467.50537109c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714844H373.24267578V401.01062011h321.92687989c55.12390137 0 99.94812012-44.82421875 99.94812011-99.94812011V190.07312011C795.11767578 134.94921875 750.29345703 90.125 695.16955567 90.125H251.12963867C196.0057373 90.125 151.18151855 134.94921875 151.18151855 190.07312011V301.0625c0 55.12390137 44.82421875 99.94812012 99.94812012 99.94812012h55.53588867v296.96044921c0 93.35632325 75.97045898 169.32678223 169.32678224 169.32678223h203.19213866c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012s-44.90661622-99.86572266-100.03051758-99.86572265z m0-199.89624024c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857423s-14.91394043 33.28857422-33.28857422 33.28857421-33.28857422-14.91394043-33.28857422-33.28857421 14.91394043-33.28857422 33.28857422-33.28857422zM217.75866699 301.0625V190.07312011c0-18.37463379 14.91394043-33.28857422 33.28857423-33.28857421h444.03991698c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857422V301.0625c0 18.37463379-14.91394043 33.28857422-33.28857422 33.28857422H251.12963867c-18.37463379 0-33.37097168-14.91394043-33.37097168-33.28857422z m555.11169434 566.23535156c-18.37463379 0-33.28857422-14.91394043-33.28857422-33.28857422 0-18.37463379 14.91394043-33.28857422 33.28857422-33.28857422s33.28857422 14.91394043 33.28857422 33.28857422c0.08239747 18.29223633-14.91394043 33.28857422-33.28857422 33.28857422z" p-id="972"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h36.571V128H0V54.857zM91.429 27.43H128V128H91.429V27.429zM45.714 0h36.572v128H45.714V0z"/></svg>

After

Width:  |  Height:  |  Size: 179 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575982282951" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="902" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M828.40625 90.125H195.59375C137.375 90.125 90.125 137.375 90.125 195.59375v632.8125c0 58.21875 47.25 105.46875 105.46875 105.46875h632.8125c58.21875 0 105.46875-47.25 105.46875-105.46875V195.59375c0-58.21875-47.25-105.46875-105.46875-105.46875z m52.734375 738.28125c0 29.16-23.57015625 52.734375-52.734375 52.734375H195.59375c-29.109375 0-52.734375-23.574375-52.734375-52.734375V195.59375c0-29.109375 23.625-52.734375 52.734375-52.734375h632.8125c29.16 0 52.734375 23.625 52.734375 52.734375v632.8125z" p-id="903"></path><path d="M421.52890625 709.55984375a36.28125 36.28125 0 0 1-27.55265625-12.66890625L205.17453125 476.613125a36.28546875 36.28546875 0 0 1 55.10109375-47.22890625l164.986875 192.4846875 342.16171875-298.48078125a36.2896875 36.2896875 0 0 1 47.70984375 54.68765625L445.3859375 700.6203125a36.3234375 36.3234375 0 0 1-23.85703125 8.93953125z" p-id="904"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.857 118.857h64V73.143H89.143c-1.902 0-3.52-.668-4.855-2.002-1.335-1.335-2.002-2.954-2.002-4.855V36.57H54.857v82.286zM73.143 16v-4.571a2.2 2.2 0 0 0-.677-1.61 2.198 2.198 0 0 0-1.609-.676H20.571c-.621 0-1.158.225-1.609.676a2.198 2.198 0 0 0-.676 1.61V16a2.2 2.2 0 0 0 .676 1.61c.451.45.988.676 1.61.676h50.285c.622 0 1.158-.226 1.61-.677.45-.45.676-.987.676-1.609zm18.286 48h21.357L91.43 42.642V64zM128 73.143v48c0 1.902-.667 3.52-2.002 4.855-1.335 1.335-2.953 2.002-4.855 2.002H52.57c-1.901 0-3.52-.667-4.854-2.002-1.335-1.335-2.003-2.953-2.003-4.855v-11.429H6.857c-1.902 0-3.52-.667-4.855-2.002C.667 106.377 0 104.759 0 102.857v-96c0-1.902.667-3.52 2.002-4.855C3.337.667 4.955 0 6.857 0h77.714c1.902 0 3.52.667 4.855 2.002 1.335 1.335 2.003 2.953 2.003 4.855V30.29c1 .622 1.856 1.29 2.569 2.003l29.147 29.147c1.335 1.335 2.478 3.145 3.429 5.43.95 2.287 1.426 4.383 1.426 6.291v-.018z"/></svg>

After

Width:  |  Height:  |  Size: 971 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1546567861908" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2422" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M318.577778 819.2L17.066667 512l301.511111-307.2 45.511111 45.511111L96.711111 512l267.377778 261.688889zM705.422222 819.2l-45.511111-45.511111L927.288889 512l-267.377778-261.688889 45.511111-45.511111L1006.933333 512zM540.785778 221.866667l55.751111 11.150222L483.157333 802.133333l-55.751111-11.093333z" p-id="2423"></path></svg>

After

Width:  |  Height:  |  Size: 717 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577252187056" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2508" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M747.59340925 691.12859384c11.51396329 0.25305413 22.43746719-0.21087818 40.74171707-1.51832482 29.35428085-2.10878421 35.84933734-2.36183835 46.47761114-0.8856895 24.71495444 3.37405491 41.12129828 21.76265671 32.47528161 47.95376084-85.57447632 258.19957947-442.00123984 249.76444099-628.67084683 50.73735554-153.47733892-159.33976008-153.09775772-414.41833795 0.92786545-573.42069196 159.71934128-162.67163983 424.03439521-166.59397897 565.78689185 0.63263534 80.38686649 94.81095318 108.34934958 169.16669549 89.11723508 230.57450162-15.01454608 47.99593598-50.61082928 77.68762207-119.77896259 114.63352789-4.89237973 2.65706845-29.35428085 15.52065436-35.84933652 19.02123633-46.94154346 25.30541465-63.51659033 41.20565021-62.20914449 58.45550757 2.95229856 39.13904114 24.16667102 52.7196135 70.98168823 53.81618115z m44.41100207 50.10472101c-19.82257471 1.43397372-32.05352527 1.940082-45.63409763 1.6448519-70.34905207-1.60267593-115.98314969-30.91478165-121.38163769-101.64341492-3.45840683-46.05585397 24.7571304-73.13264758 89.24376132-107.96976837 6.7902866-3.66928501 31.37871396-16.57504688 36.06021551-19.06341229 57.69634516-30.83042972 85.15271997-53.73183005 94.76877722-84.47790866 12.77923398-40.78389304-9.10994898-98.94417051-79.24812286-181.6507002-121.17075953-142.97559219-350.14258521-139.60153647-489.2380134 2.06660824-134.49827774 138.84237405-134.79350784 362.12048163-0.42175717 501.637667 158.53842169 168.99799328 451.9968783 181.18676788 534.57688175-11.80919339-4.68150156 0.2952301-10.71262573 0.67481131-18.72600705 1.26527069z" p-id="2509"></path><path d="M346.03865637 637.18588562a78.82636652 78.82636652 0 0 0 78.32025825-79.29029883c0-43.69401562-35.005823-79.29029883-78.32025825-79.29029882a78.82636652 78.82636652 0 0 0-78.36243338 79.29029882c0 43.69401562 35.005823 79.29029883 78.36243338 79.29029883z m0-51.7495729a27.07679361 27.07679361 0 0 1-26.5706845-27.54072593c0-15.30977536 11.97789643-27.54072593 26.5706845-27.54072592 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072592a27.07679361 27.07679361 0 0 1-26.57068533 27.54072593zM475.7289063 807.11174353a78.82636652 78.82636652 0 0 0 78.3624334-79.29029882c0-43.69401562-34.96364785-79.29029883-78.32025825-79.29029883a78.82636652 78.82636652 0 0 0-78.32025742 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029882z m0-51.74957208a27.07679361 27.07679361 0 0 1-26.57068532-27.54072674c0-15.30977536 12.06224753-27.54072593 26.57068532-27.54072593 14.59278892 0 26.57068533 12.23095057 26.57068453 27.54072593a27.07679361 27.07679361 0 0 1-26.57068453 27.54072674zM601.24376214 377.21492718a78.82636652 78.82636652 0 0 0 78.32025742-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025742-79.29029882a78.82636652 78.82636652 0 0 0-78.32025823 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025824 79.29029883z m1e-8-51.74957208a27.07679361 27.07679361 0 0 1-26.57068534-27.54072675c0-15.30977536 11.97789643-27.54072593 26.57068534-27.54072591 14.55061295 0 26.57068533 12.23095057 26.57068451 27.54072592a27.07679361 27.07679361 0 0 1-26.57068451 27.54072674zM378.80916809 433.85687983a78.82636652 78.82636652 0 0 0 78.32025824-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025824-79.29029802a78.82636652 78.82636652 0 0 0-78.32025742 79.29029802c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029883z m0-51.74957209a27.07679361 27.07679361 0 0 1-26.57068451-27.54072674c0-15.30977536 11.97789643-27.54072593 26.57068451-27.54072593 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072593a27.07679361 27.07679361 0 0 1-26.57068533 27.54072674z" p-id="2510"></path></svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575804206892" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3145" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M826.56 470.016c-32.896 0-64.384 12.288-89.984 35.52l0-104.96c0-62.208-50.496-112.832-112.64-113.088L623.936 287.04 519.552 287.104C541.824 262.72 554.56 230.72 554.56 197.12c0-73.536-59.904-133.44-133.504-133.44-73.472 0-133.376 59.904-133.376 133.44 0 32.896 12.224 64.256 35.52 89.984L175.232 287.104l0 0.576C113.728 288.704 64 338.88 64 400.576l0.32 0 0.32 116.48C60.864 544.896 70.592 577.728 100.8 588.48c12.736 4.608 37.632 7.488 60.864-25.28 12.992-18.368 34.24-29.248 56.64-29.248 38.336 0 69.504 31.104 69.504 69.312 0 38.4-31.168 69.504-69.504 69.504-22.656 0-44.032-11.264-57.344-30.4C138.688 610.112 112.576 615.36 102.464 619.136c-29.824 10.752-39.104 43.776-38.144 67.392l0 160.384L64 846.912C64 909.248 114.752 960 177.216 960l446.272 0c62.4 0 113.152-50.752 113.152-113.152l0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.536 0 133.44-59.904 133.44-133.504C960 529.92 900.096 470.016 826.56 470.016zM826.56 672.896c-22.72 0-44.032-11.264-57.344-30.4-22.272-32.384-48.448-27.136-58.56-23.36-29.824 10.752-39.04 43.776-38.08 67.392l0 160.384c0 27.136-22.016 49.152-49.152 49.152L177.216 896.064C150.08 896 128 873.984 128 846.848l0.32 0 0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.6 0 133.504-59.904 133.504-133.504 0-73.472-59.904-133.376-133.504-133.376-32.896 0-64.32 12.288-89.984 35.52l0-104.96L128 400.512c0-27.072 22.08-49.152 49.216-49.152L177.216 351.04 334.656 350.72c3.776 0.512 7.616 0.832 11.52 0.832 24.896 0 50.752-10.816 60.032-37.056 4.544-12.736 7.424-37.568-25.344-60.736C362.624 240.768 351.68 219.52 351.68 197.12c0-38.272 31.104-69.44 69.376-69.44 38.336 0 69.504 31.168 69.504 69.44 0 22.72-11.264 44.032-30.528 57.472C427.968 276.736 433.088 302.784 436.8 313.024c10.752 29.888 43.072 39.232 67.392 38.08l119.232 0 0 0.384c27.136 0 49.152 22.08 49.152 49.152l0.256 116.48c-3.776 27.84 6.016 60.736 36.224 71.488 12.736 4.608 37.632 7.488 60.8-25.28 13.056-18.368 34.24-29.248 56.704-29.248C864.832 534.016 896 565.12 896 603.392 896 641.728 864.832 672.896 826.56 672.896z" p-id="3146"></path></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1 @@
<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M27.429 63.638c0-2.508-.893-4.65-2.679-6.424-1.786-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.465 2.662-1.785 1.774-2.678 3.916-2.678 6.424 0 2.508.893 4.65 2.678 6.424 1.786 1.775 3.94 2.662 6.465 2.662 2.524 0 4.678-.887 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm13.714-31.801c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM71.714 65.98l7.215-27.116c.285-1.23.107-2.378-.536-3.443-.643-1.064-1.56-1.762-2.75-2.094-1.19-.33-2.333-.177-3.429.462-1.095.639-1.81 1.573-2.143 2.804l-7.214 27.116c-2.857.237-5.405 1.266-7.643 3.088-2.238 1.822-3.738 4.152-4.5 6.992-.952 3.644-.476 7.098 1.429 10.364 1.905 3.265 4.69 5.37 8.357 6.317 3.667.947 7.143.474 10.429-1.42 3.285-1.892 5.404-4.66 6.357-8.305.762-2.84.619-5.607-.429-8.305-1.047-2.697-2.762-4.85-5.143-6.46zm47.143-2.342c0-2.508-.893-4.65-2.678-6.424-1.786-1.775-3.94-2.662-6.465-2.662-2.524 0-4.678.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.786 1.775 3.94 2.662 6.464 2.662 2.524 0 4.679-.887 6.465-2.662 1.785-1.775 2.678-3.916 2.678-6.424zm-45.714-45.43c0-2.509-.893-4.65-2.679-6.425C68.68 10.01 66.524 9.122 64 9.122c-2.524 0-4.679.887-6.464 2.661-1.786 1.775-2.679 3.916-2.679 6.425 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm32 13.629c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM128 63.638c0 12.351-3.357 23.78-10.071 34.286-.905 1.372-2.19 2.058-3.858 2.058H13.93c-1.667 0-2.953-.686-3.858-2.058C3.357 87.465 0 76.037 0 63.638c0-8.613 1.69-16.847 5.071-24.703C8.452 31.08 13 24.312 18.714 18.634c5.715-5.68 12.524-10.199 20.429-13.559C47.048 1.715 55.333.035 64 .035c8.667 0 16.952 1.68 24.857 5.04 7.905 3.36 14.714 7.88 20.429 13.559 5.714 5.678 10.262 12.446 13.643 20.301 3.38 7.856 5.071 16.09 5.071 24.703z"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577186573535" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1068" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M479.85714249 608.42857168h64.28571502c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285751s-12.85714249-32.14285751-32.14285664-32.14285664h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285662s12.85714249 32.14285751 32.14285664 32.14285753z m-2e-8 122.14285665h64.28571504c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285665s-12.85714249-32.14285751-32.14285664-32.14285751h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285751s12.85714249 32.14285751 32.14285664 32.14285664z m353.57142921-559.28571416h-128.57142921v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285664-32.14285753s-32.14285751 12.85714249-32.14285751 32.14285753v32.14285664h-257.14285665v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285752-32.14285753s-32.14285751 12.85714249-32.14285664 32.14285753v32.14285664h-128.57142919c-70.71428585 0-128.57142832 57.85714249-128.57142832 122.14285751v501.42857081c0 70.71428585 57.85714249 128.57142832 128.57142832 122.14285751h642.85714335c70.71428585 0 128.57142832-57.85714249 128.57142833-122.14285751v-501.42857081c0-70.71428585-57.85714249-122.14285753-128.57142833-122.14285751z m64.28571415 623.57142832c0 32.14285751-32.14285751 64.28571415-64.28571416 64.28571504h-642.85714335c-32.14285751 0-64.28571415-25.71428583-64.28571417-64.28571504v-372.85714249h771.42857168v372.85714249z m0-437.14285664h-771.42857168v-64.28571417c0-32.14285751 32.14285751-64.28571415 64.28571417-64.28571415h128.57142919v32.14285664c0 19.28571417 12.85714249 32.14285751 32.14285664 32.14285751s32.14285751-12.85714249 32.14285753-32.14285751v-32.14285664h257.14285665v32.14285664c0 19.28571417 12.85714249 32.14285751 32.1428575 32.14285751s32.14285751-12.85714249 32.14285664-32.14285751v-32.14285664h128.57142921c32.14285751 0 64.28571415 25.71428583 64.28571415 64.28571415v64.28571417z m-610.71428583 372.85714247h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285664s-12.85714249-32.14285751-32.14285753-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285751s12.85714249 32.14285751 32.14285751 32.14285665z m385.71428583-122.14285664h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285751s-12.85714249-32.14285751-32.14285751-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285664s12.85714249 32.14285751 32.14285753 32.14285751z m-385.71428583 0h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285751s-12.85714249-32.14285751-32.14285753-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285664s12.85714249 32.14285751 32.14285751 32.14285751z m385.71428583 122.14285665h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285665s-12.85714249-32.14285751-32.14285751-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285751s12.85714249 32.14285751 32.14285753 32.14285665z" p-id="1069"></path></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1579774833889" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1376" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M887.466667 192.853333h-100.693334V119.466667c0-10.24-6.826667-17.066667-17.066666-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H303.786667V119.466667c0-10.24-6.826667-17.066667-17.066667-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H168.96c-46.08 0-85.333333 37.546667-85.333333 85.333334V836.266667c0 46.08 37.546667 85.333333 85.333333 85.333333H887.466667c46.08 0 85.333333-37.546667 85.333333-85.333333V278.186667c0-47.786667-37.546667-85.333333-85.333333-85.333334z m-718.506667 34.133334h100.693333v66.56c0 10.24 6.826667 17.066667 17.066667 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56h450.56v66.56c0 10.24 6.826667 17.066667 17.066666 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56H887.466667c27.306667 0 51.2 22.186667 51.2 51.2v88.746666H117.76v-88.746666c0-29.013333 22.186667-51.2 51.2-51.2zM887.466667 887.466667H168.96c-27.306667 0-51.2-22.186667-51.2-51.2V401.066667H938.666667V836.266667c0 27.306667-22.186667 51.2-51.2 51.2z" p-id="1377"></path><path d="M858.453333 493.226667H327.68c-10.24 0-17.066667 6.826667-17.066667 17.066666v114.346667h-116.053333c-10.24 0-17.066667 6.826667-17.066667 17.066667v133.12c0 10.24 6.826667 17.066667 17.066667 17.066666H460.8c10.24 0 17.066667-6.826667 17.066667-17.066666v-114.346667h380.586666c10.24 0 17.066667-6.826667 17.066667-17.066667v-133.12c0-10.24-6.826667-17.066667-17.066667-17.066666z m-413.013333 34.133333v97.28h-98.986667v-97.28h98.986667z m-230.4 131.413333h98.986667v98.986667h-98.986667v-98.986667z m131.413333 97.28v-97.28h98.986667v97.28h-98.986667z m133.12-228.693333h97.28v98.986667h-97.28v-98.986667z m131.413334 0h98.986666v98.986667h-98.986666v-98.986667z m230.4 97.28h-98.986667v-98.986667h98.986667v98.986667z" p-id="1378"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566035680909" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3601" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1002.0848 744.672l-33.568 10.368c0.96 7.264 2.144 14.304 2.144 21.76 0 7.328-1.184 14.432-2.368 21.568l33.792 10.56c7.936 2.24 14.496 7.616 18.336 14.752 3.84 7.328 4.672 15.808 1.952 23.552-5.376 16-23.168 24.672-39.936 19.68l-34.176-10.624c-7.136 12.8-15.776 24.672-26.208 35.2l20.8 27.488a28.96 28.96 0 0 1 5.824 22.816 29.696 29.696 0 0 1-12.704 19.616 32.544 32.544 0 0 1-44.416-6.752l-20.8-27.552c-13.696 6.56-28.192 11.2-43.008 13.888v33.632c0 16.736-14.112 30.432-31.648 30.432-17.6 0-31.872-13.696-31.872-30.432v-33.632a167.616 167.616 0 0 1-42.88-13.888l-20.928 27.552c-10.72 13.76-30.08 16.64-44.288 6.752a29.632 29.632 0 0 1-12.704-19.616 29.28 29.28 0 0 1 5.696-22.816l20.896-27.808a166.72 166.72 0 0 1-27.008-34.688l-33.376 10.432c-16.8 5.184-34.56-3.552-39.936-19.616a29.824 29.824 0 0 1 20.224-38.24l33.472-10.432c-0.8-7.264-2.016-14.304-2.016-21.824 0-7.36 1.184-14.496 2.304-21.632l-33.792-10.368c-16.672-5.376-25.632-22.496-20.224-38.432 5.376-16 23.136-24.672 39.936-19.68l34.016 10.752c7.328-12.672 15.84-24.8 26.336-35.328l-20.8-27.552a29.44 29.44 0 0 1 6.944-42.432 32.704 32.704 0 0 1 44.384 6.752l20.832 27.616c13.696-6.432 28.224-11.2 43.104-13.952v-33.568c0-16.736 14.048-30.432 31.648-30.432 17.536 0 31.808 13.568 31.808 30.432v33.504c15.072 2.688 29.344 7.808 42.848 14.016l20.992-27.616a32.48 32.48 0 0 1 44.224-6.752 29.568 29.568 0 0 1 7.136 42.432l-21.024 27.808c10.432 10.432 19.872 21.888 27.04 34.752l33.376-10.432c16.768-5.12 34.56 3.68 39.936 19.68 5.536 15.936-3.712 33.056-20.32 38.304z m-206.016-74.432c-61.344 0-111.136 47.808-111.136 106.56 0 58.88 49.792 106.496 111.136 106.496 61.312 0 111.104-47.616 111.104-106.496 0-58.752-49.792-106.56-111.104-106.56z" p-id="3602"></path><path d="M802.7888 57.152h-76.448c0-22.08-21.024-38.24-42.848-38.24H39.3968a39.68 39.68 0 0 0-39.36 40.032v795.616s41.888 120.192 110.752 120.192H673.2848a227.488 227.488 0 0 1-107.04-97.44H117.6368s-40.608-13.696-40.608-41.248l470.304-0.256 1.664 3.36a227.68 227.68 0 0 1-12.64-73.632c0-60.576 24-118.624 66.88-161.44a228.352 228.352 0 0 1 123.552-63.392l-3.2 0.288 2.144-424.672h38.208l0.576 421.024c27.04 0 52.672 4.8 76.64 13.344V101.536c0.032 0-6.304-44.384-38.368-44.384zM149.7648 514.336H72.3888v-77.408H149.7648v77.408z m0-144.32H72.3888v-77.44H149.7648v77.44z m0-137.248H72.3888v-77.44H149.7648v77.44z m501.856 281.568H206.0848v-77.408h445.536v77.408z m0-144.32H206.0848v-77.44h445.536v77.44z m0-137.248H206.0848v-77.44h445.536v77.44z" p-id="3603"></path></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M71.984 44.815H115.9L71.984 9.642v35.173zM16.094.05h63.875l47.906 38.37v76.74c0 3.392-1.682 6.645-4.677 9.044-2.995 2.399-7.056 3.746-11.292 3.746H16.094c-4.236 0-8.297-1.347-11.292-3.746-2.995-2.399-4.677-5.652-4.677-9.044V12.84C.125 5.742 7.23.05 16.094.05zm71.86 102.32V89.58h-71.86v12.79h71.86zm23.952-25.58V64H16.094v12.79h95.812z"/></svg>

After

Width:  |  Height:  |  Size: 418 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1569915748289" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3062" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M768.35456 416a256 256 0 1 0-512 0 192 192 0 1 0 0 384v64a256 256 0 0 1-58.88-505.216 320.128 320.128 0 0 1 629.76 0A256.128 256.128 0 0 1 768.35456 864v-64a192 192 0 0 0 0-384z m-512 384h64v64H256.35456v-64z m448 0h64v64h-64v-64z" fill="#333333" p-id="3063"></path><path d="M539.04256 845.248V512.192a32.448 32.448 0 0 0-32-32.192c-17.664 0-32 14.912-32 32.192v333.056l-36.096-36.096a32.192 32.192 0 0 0-45.056 0.192 31.616 31.616 0 0 0-0.192 45.056l90.88 90.944a31.36 31.36 0 0 0 22.528 9.088 30.08 30.08 0 0 0 22.4-9.088l90.88-90.88a32.192 32.192 0 0 0-0.192-45.12 31.616 31.616 0 0 0-45.056-0.192l-36.096 36.096z" fill="#333333" p-id="3064"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M73.137 29.08h-9.209 29.7L63.886.093 34.373 29.08h20.49v27.035H27.238v17.948h27.625v27.133h18.274V74.063h27.41V56.115h-27.41V29.08zm-9.245 98.827l27.518-26.711H36.59l27.302 26.71zM.042 64.982l27.196 27.029V38.167L.042 64.982zm100.505-26.815V92.01l27.41-27.029-27.41-26.815z"/></svg>

After

Width:  |  Height:  |  Size: 356 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566036347051" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5853" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M832 128H192a64.19 64.19 0 0 0-64 64v640a64.19 64.19 0 0 0 64 64h640a64.19 64.19 0 0 0 64-64V192a64.19 64.19 0 0 0-64-64z m0 703.89l-0.11 0.11H192.11l-0.11-0.11V768h640zM832 544H720L605.6 696.54 442.18 435.07 333.25 544H192v-64h114.75l147.07-147.07L610.4 583.46 688 480h144z m0-288H192v-63.89l0.11-0.11h639.78l0.11 0.11z" p-id="5854"></path></svg>

After

Width:  |  Height:  |  Size: 724 B

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M106.133 67.2a4.797 4.797 0 0 0-4.8 4.8c0 .187.014.36.027.533h-.027V118.4H9.6V26.667h50.133c2.654 0 4.8-2.147 4.8-4.8 0-2.654-2.146-4.8-4.8-4.8H9.6a9.594 9.594 0 0 0-9.6 9.6V118.4c0 5.307 4.293 9.6 9.6 9.6h91.733c5.307 0 9.6-4.293 9.6-9.6V72.533h-.026c.013-.173.026-.346.026-.533 0-2.653-2.146-4.8-4.8-4.8z"/><path d="M125.16 13.373L114.587 2.8c-3.747-3.747-9.854-3.72-13.6.027l-52.96 52.96a4.264 4.264 0 0 0-.907 1.36L33.813 88.533c-.746 1.76-.226 3.534.907 4.68 1.133 1.147 2.92 1.667 4.693.92l31.4-13.293c.507-.213.96-.52 1.36-.907l52.96-52.96c3.747-3.746 3.774-9.853.027-13.6zM66.107 72.4l-18.32 7.76 7.76-18.32L92.72 24.667l10.56 10.56L66.107 72.4zm52.226-52.227l-8.266 8.267-10.56-10.56 8.266-8.267.027-.026 10.56 10.56-.027.026z"/></svg>

After

Width:  |  Height:  |  Size: 818 B

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M88.883 119.565c-7.284 0-19.434 2.495-21.333 8.25v.127c-4.232.13-5.222 0-7.108 0-1.895-5.76-14.045-8.256-21.333-8.256H0V0h42.523c9.179 0 17.109 5.47 21.47 13.551C68.352 5.475 76.295 0 85.478 0H128v119.57l-39.113-.005h-.004zM60.442 24.763c0-9.651-8.978-16.507-17.777-16.507H7.108V111.43H39.11c7.054-.14 18.177.082 21.333 6.12v-4.628c-.134-5.722-.004-13.522 0-13.832V27.413l.004-2.655-.004.005zm60.442-16.517h-35.55c-8.802 0-17.78 6.856-17.78 16.493v74.259c.004.32.138 8.115 0 13.813v4.627c3.155-6.022 14.279-6.26 21.333-6.114h32V8.25l-.003-.005z"/></svg>

After

Width:  |  Height:  |  Size: 627 B

View File

@ -0,0 +1 @@
<svg width="128" height="96" xmlns="http://www.w3.org/2000/svg"><path d="M64.125 56.975L120.188.912A12.476 12.476 0 0 0 115.5 0h-103c-1.588 0-3.113.3-4.513.838l56.138 56.137z"/><path d="M64.125 68.287l-62.3-62.3A12.42 12.42 0 0 0 0 12.5v71C0 90.4 5.6 96 12.5 96h103c6.9 0 12.5-5.6 12.5-12.5v-71a12.47 12.47 0 0 0-1.737-6.35L64.125 68.287z"/></svg>

After

Width:  |  Height:  |  Size: 347 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 20 20"><g fill="none"><path d="M11.197 2.44a1.5 1.5 0 0 1 2.121 0l4.243 4.242a1.5 1.5 0 0 1 0 2.121L9.364 17H14.5a.5.5 0 0 1 0 1H7.82a1.496 1.496 0 0 1-1.14-.437L2.437 13.32a1.5 1.5 0 0 1 0-2.121l8.76-8.76zm1.414.706a.5.5 0 0 0-.707 0L5.538 9.512l4.95 4.95l6.366-6.366a.5.5 0 0 0 0-.707L12.61 3.146zM9.781 15.17l-4.95-4.95l-1.687 1.687a.5.5 0 0 0 0 .707l4.243 4.243a.5.5 0 0 0 .707 0l1.687-1.687z" fill="currentColor"></path></g></svg>

After

Width:  |  Height:  |  Size: 531 B

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M96.258 57.462h31.421C124.794 27.323 100.426 2.956 70.287.07v31.422a32.856 32.856 0 0 1 25.971 25.97zm-38.796-25.97V.07C27.323 2.956 2.956 27.323.07 57.462h31.422a32.856 32.856 0 0 1 25.97-25.97zm12.825 64.766v31.421c30.46-2.885 54.507-27.253 57.713-57.712H96.579c-2.886 13.466-13.146 23.726-26.292 26.291zM31.492 70.287H.07c2.886 30.46 27.253 54.507 57.713 57.713V96.579c-13.466-2.886-23.726-13.146-26.291-26.292z"/></svg>

After

Width:  |  Height:  |  Size: 497 B

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.208 16.576v8.384h38.72v5.376h-38.72v8.704h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.512h38.72v5.376h-38.72v11.136H128v-94.72H78.208zM0 114.368L72.128 128V0L0 13.632v100.736z"/><path d="M28.672 82.56h-11.2l14.784-23.488-14.08-22.592h11.52l8.192 14.976 8.448-14.976h11.136l-14.08 22.208L58.368 82.56H46.656l-8.768-15.68z"/></svg>

After

Width:  |  Height:  |  Size: 459 B

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M49.217 41.329l-.136-35.24c-.06-2.715-2.302-4.345-5.022-4.405h-3.65c-2.712-.06-4.866 2.303-4.806 5.016l.152 19.164-24.151-23.79a6.698 6.698 0 0 0-9.499 0 6.76 6.76 0 0 0 0 9.526l23.93 23.713-18.345.074c-2.712-.069-5.228 1.813-5.64 5.02v3.462c.069 2.721 2.31 4.97 5.022 5.03l35.028-.207c.052.005.087.025.133.025l2.457.054a4.626 4.626 0 0 0 3.436-1.38c.88-.874 1.205-2.096 1.169-3.462l-.262-2.465c0-.048.182-.081.182-.136h.002zm52.523 51.212l18.32-.073c2.713.06 5.224-1.609 5.64-4.815v-3.462c-.068-2.722-2.317-4.97-5.021-5.04l-34.58.21c-.053 0-.086-.021-.138-.021l-2.451-.06a4.64 4.64 0 0 0-3.445 1.381c-.885.868-1.201 2.094-1.174 3.46l.27 2.46c.005.06-.177.095-.177.141l.141 34.697c.069 2.713 2.31 4.338 5.022 4.397l3.45.006c2.705.062 4.867-2.31 4.8-5.026l-.153-18.752 24.151 23.946a6.69 6.69 0 0 0 9.494 0 6.747 6.747 0 0 0 0-9.523L101.74 92.54v.001zM48.125 80.662a4.636 4.636 0 0 0-3.437-1.382l-2.457.06c-.05 0-.082.022-.137.022l-35.025-.21c-2.712.07-4.957 2.318-5.022 5.04v3.462c.409 3.206 2.925 4.874 5.633 4.814l18.554.06-24.132 23.928c-2.62 2.626-2.62 6.89 0 9.524a6.694 6.694 0 0 0 9.496 0l24.155-23.79-.155 18.866c-.06 2.722 2.094 5.093 4.801 5.025h3.65c2.72-.069 4.962-1.685 5.022-4.406l.141-34.956c0-.05-.182-.082-.182-.136l.262-2.46c.03-1.366-.286-2.592-1.166-3.46h-.001zM80.08 47.397a4.62 4.62 0 0 0 3.443 1.374l2.45-.054c.055 0 .088-.02.143-.028l35.08.21c2.712-.062 4.953-2.312 5.021-5.033l.009-3.463c-.417-3.211-2.937-5.084-5.64-5.025l-18.615-.073 23.917-23.715c2.63-2.623 2.63-6.879.008-9.513a6.691 6.691 0 0 0-9.494 0L92.251 26.016l.155-19.312c.065-2.713-2.097-5.085-4.802-5.025h-3.45c-2.713.069-4.954 1.693-5.022 4.406l-.139 35.247c0 .054.18.088.18.136l-.267 2.465c-.028 1.366.288 2.588 1.174 3.463v.001z"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Some files were not shown because too many files have changed in this diff Show More