+
+
+
\ No newline at end of file
diff --git a/public/images/menu/icon-component.svg b/public/images/menu/icon-component.svg
new file mode 100644
index 0000000..3d94d1b
--- /dev/null
+++ b/public/images/menu/icon-component.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/menu/icon-documentation.svg b/public/images/menu/icon-documentation.svg
new file mode 100644
index 0000000..3a5a7f2
--- /dev/null
+++ b/public/images/menu/icon-documentation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/menu/icon-home.svg b/public/images/menu/icon-home.svg
new file mode 100644
index 0000000..c3e3d2c
--- /dev/null
+++ b/public/images/menu/icon-home.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/menu/icon-monitor.svg b/public/images/menu/icon-monitor.svg
new file mode 100644
index 0000000..bc308cb
--- /dev/null
+++ b/public/images/menu/icon-monitor.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/public/images/menu/icon-shopping.svg b/public/images/menu/icon-shopping.svg
new file mode 100644
index 0000000..0fa63c1
--- /dev/null
+++ b/public/images/menu/icon-shopping.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/menu/icon-system.svg b/public/images/menu/icon-system.svg
new file mode 100644
index 0000000..6027fd6
--- /dev/null
+++ b/public/images/menu/icon-system.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/menu/icon-tool.svg b/public/images/menu/icon-tool.svg
new file mode 100644
index 0000000..48e0e35
--- /dev/null
+++ b/public/images/menu/icon-tool.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..bf01e7d
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+ 人机适配性高维数据管理平台
+
+
+
+
+
+
+
+
+
+
+
正在加载系统资源,请耐心等待
+
+
+
+
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000..77470cb
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
\ No newline at end of file
diff --git a/public/sounds/keypress-delete.wav b/public/sounds/keypress-delete.wav
new file mode 100644
index 0000000..e4a4af7
Binary files /dev/null and b/public/sounds/keypress-delete.wav differ
diff --git a/public/sounds/keypress-return.wav b/public/sounds/keypress-return.wav
new file mode 100644
index 0000000..8b666ce
Binary files /dev/null and b/public/sounds/keypress-return.wav differ
diff --git a/public/sounds/keypress-spacebar.wav b/public/sounds/keypress-spacebar.wav
new file mode 100644
index 0000000..84743a0
Binary files /dev/null and b/public/sounds/keypress-spacebar.wav differ
diff --git a/public/sounds/keypress-standard.wav b/public/sounds/keypress-standard.wav
new file mode 100644
index 0000000..42dcef5
Binary files /dev/null and b/public/sounds/keypress-standard.wav differ
diff --git a/public/sounds/plonk.wav b/public/sounds/plonk.wav
new file mode 100644
index 0000000..ea05fc8
Binary files /dev/null and b/public/sounds/plonk.wav differ
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..1536a8a
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
diff --git a/src/api/common.js b/src/api/common.js
new file mode 100644
index 0000000..762ad20
--- /dev/null
+++ b/src/api/common.js
@@ -0,0 +1,52 @@
+import request from "@/utils/request";
+import qs from "querystring";
+
+export const getAction = (url, params) => {
+ return request({
+ url,
+ params,
+ method: "get",
+ });
+};
+
+export const postAction = (url, data) => {
+ return request({
+ url,
+ data,
+ method: "post",
+ });
+};
+
+export const putAction = (url, data) => {
+ return request({
+ url,
+ data,
+ method: "put",
+ });
+};
+
+export const deleteAction = (url, data) => {
+ return request({
+ url,
+ data,
+ method: "delete",
+ });
+};
+
+export const exportFile = (url, data) => {
+ return request({
+ url,
+ data,
+ method: "post",
+ responseType: "blob",
+ });
+};
+
+export const exportFile1 = (url, params) => {
+ console.log(`${url}`);
+ return request({
+ url: `${url}`,
+ method: "get",
+ responseType: "blob",
+ });
+};
diff --git a/src/api/demo/demo.js b/src/api/demo/demo.js
new file mode 100644
index 0000000..04d4025
--- /dev/null
+++ b/src/api/demo/demo.js
@@ -0,0 +1,54 @@
+import request from '@/utils/request'
+
+// 查询测试单表列表
+export function listDemo(query) {
+ return request({
+ url: '/demo/demo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 自定义分页接口
+export function pageDemo(query) {
+ return request({
+ url: '/demo/demo/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询测试单表详细
+export function getDemo(id) {
+ return request({
+ url: '/demo/demo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增测试单表
+export function addDemo(data) {
+ return request({
+ url: '/demo/demo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改测试单表
+export function updateDemo(data) {
+ return request({
+ url: '/demo/demo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除测试单表
+export function delDemo(id) {
+ return request({
+ url: '/demo/demo/' + id,
+ method: 'delete'
+ })
+}
+
diff --git a/src/api/demo/tree.js b/src/api/demo/tree.js
new file mode 100644
index 0000000..4c7ebc0
--- /dev/null
+++ b/src/api/demo/tree.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询测试树表列表
+export function listTree(query) {
+ return request({
+ url: '/demo/tree/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询测试树表详细
+export function getTree(id) {
+ return request({
+ url: '/demo/tree/' + id,
+ method: 'get'
+ })
+}
+
+// 新增测试树表
+export function addTree(data) {
+ return request({
+ url: '/demo/tree',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改测试树表
+export function updateTree(data) {
+ return request({
+ url: '/demo/tree',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除测试树表
+export function delTree(id) {
+ return request({
+ url: '/demo/tree/' + id,
+ method: 'delete'
+ })
+}
diff --git a/src/api/login.js b/src/api/login.js
new file mode 100644
index 0000000..3c5bcfe
--- /dev/null
+++ b/src/api/login.js
@@ -0,0 +1,71 @@
+import request from '@/utils/request'
+
+// 登录方法
+export function login(username, password, code, uuid) {
+ const data = {
+ username,
+ password,
+ code,
+ uuid
+ }
+ return request({
+ url: '/login',
+ headers: {
+ isToken: false
+ },
+ method: 'post',
+ data: data
+ })
+}
+
+// 注册方法
+export function register(data) {
+ return request({
+ url: '/register',
+ headers: {
+ isToken: false
+ },
+ method: 'post',
+ data: data
+ })
+}
+
+// 获取用户详细信息
+export function getInfo() {
+ return request({
+ url: '/getInfo',
+ method: 'get'
+ })
+}
+
+// 退出方法
+export function logout() {
+ return request({
+ url: '/logout',
+ method: 'post'
+ })
+}
+
+// 获取验证码
+export function getCodeImg() {
+ return request({
+ url: '/captchaImage',
+ headers: {
+ isToken: false
+ },
+ method: 'get',
+ timeout: 20000
+ })
+}
+
+// 短信验证码
+export function getCodeSms() {
+ return request({
+ url: '/captchaSms',
+ headers: {
+ isToken: false
+ },
+ method: 'get',
+ timeout: 20000
+ })
+}
diff --git a/src/api/menu.js b/src/api/menu.js
new file mode 100644
index 0000000..faef101
--- /dev/null
+++ b/src/api/menu.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+// 获取路由
+export const getRouters = () => {
+ return request({
+ url: '/getRouters',
+ method: 'get'
+ })
+}
\ No newline at end of file
diff --git a/src/api/monitor/cache.js b/src/api/monitor/cache.js
new file mode 100644
index 0000000..5cf0517
--- /dev/null
+++ b/src/api/monitor/cache.js
@@ -0,0 +1,57 @@
+import request from '@/utils/request'
+
+// 查询缓存详细
+export function getCache() {
+ return request({
+ url: '/monitor/cache',
+ method: 'get'
+ })
+}
+
+// 查询缓存名称列表
+export function listCacheName() {
+ return request({
+ url: '/monitor/cache/getNames',
+ method: 'get'
+ })
+}
+
+// 查询缓存键名列表
+export function listCacheKey(cacheName) {
+ return request({
+ url: '/monitor/cache/getKeys/' + cacheName,
+ method: 'get'
+ })
+}
+
+// 查询缓存内容
+export function getCacheValue(cacheName, cacheKey) {
+ return request({
+ url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey,
+ method: 'get'
+ })
+}
+
+// 清理指定名称缓存
+export function clearCacheName(cacheName) {
+ return request({
+ url: '/monitor/cache/clearCacheName/' + cacheName,
+ method: 'delete'
+ })
+}
+
+// 清理指定键名缓存
+export function clearCacheKey(cacheName, cacheKey) {
+ return request({
+ url: '/monitor/cache/clearCacheKey/'+ cacheName + "/" + cacheKey,
+ method: 'delete'
+ })
+}
+
+// 清理全部缓存
+export function clearCacheAll() {
+ return request({
+ url: '/monitor/cache/clearCacheAll',
+ method: 'delete'
+ })
+}
diff --git a/src/api/monitor/logininfor.js b/src/api/monitor/logininfor.js
new file mode 100644
index 0000000..4d112b7
--- /dev/null
+++ b/src/api/monitor/logininfor.js
@@ -0,0 +1,34 @@
+import request from '@/utils/request'
+
+// 查询登录日志列表
+export function list(query) {
+ return request({
+ url: '/monitor/logininfor/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 删除登录日志
+export function delLogininfor(infoId) {
+ return request({
+ url: '/monitor/logininfor/' + infoId,
+ method: 'delete'
+ })
+}
+
+// 解锁用户登录状态
+export function unlockLogininfor(userName) {
+ return request({
+ url: '/monitor/logininfor/unlock/' + userName,
+ method: 'get'
+ })
+}
+
+// 清空登录日志
+export function cleanLogininfor() {
+ return request({
+ url: '/monitor/logininfor/clean',
+ method: 'delete'
+ })
+}
diff --git a/src/api/monitor/online.js b/src/api/monitor/online.js
new file mode 100644
index 0000000..bd22137
--- /dev/null
+++ b/src/api/monitor/online.js
@@ -0,0 +1,18 @@
+import request from '@/utils/request'
+
+// 查询在线用户列表
+export function list(query) {
+ return request({
+ url: '/monitor/online/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 强退用户
+export function forceLogout(tokenId) {
+ return request({
+ url: '/monitor/online/' + tokenId,
+ method: 'delete'
+ })
+}
diff --git a/src/api/monitor/operlog.js b/src/api/monitor/operlog.js
new file mode 100644
index 0000000..a04bca8
--- /dev/null
+++ b/src/api/monitor/operlog.js
@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+// 查询操作日志列表
+export function list(query) {
+ return request({
+ url: '/monitor/operlog/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 删除操作日志
+export function delOperlog(operId) {
+ return request({
+ url: '/monitor/operlog/' + operId,
+ method: 'delete'
+ })
+}
+
+// 清空操作日志
+export function cleanOperlog() {
+ return request({
+ url: '/monitor/operlog/clean',
+ method: 'delete'
+ })
+}
diff --git a/src/api/system/config.js b/src/api/system/config.js
new file mode 100644
index 0000000..02f0cfc
--- /dev/null
+++ b/src/api/system/config.js
@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询参数列表
+export function listConfig(query) {
+ return request({
+ url: '/system/config/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询参数详细
+export function getConfig(configId) {
+ return request({
+ url: '/system/config/' + configId,
+ method: 'get'
+ })
+}
+
+// 根据参数键名查询参数值
+export function getConfigKey(configKey) {
+ return request({
+ url: '/system/config/configKey/' + configKey,
+ method: 'get'
+ })
+}
+
+// 新增参数配置
+export function addConfig(data) {
+ return request({
+ url: '/system/config',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改参数配置
+export function updateConfig(data) {
+ return request({
+ url: '/system/config',
+ method: 'put',
+ data: data
+ })
+}
+
+// 修改参数配置
+export function updateConfigByKey(key, value) {
+ return request({
+ url: '/system/config/updateByKey',
+ method: 'put',
+ data: {
+ configKey: key,
+ configValue: value
+ }
+ })
+}
+
+// 删除参数配置
+export function delConfig(configId) {
+ return request({
+ url: '/system/config/' + configId,
+ method: 'delete'
+ })
+}
+
+// 刷新参数缓存
+export function refreshCache() {
+ return request({
+ url: '/system/config/refreshCache',
+ method: 'delete'
+ })
+}
+
diff --git a/src/api/system/dept.js b/src/api/system/dept.js
new file mode 100644
index 0000000..331c4b2
--- /dev/null
+++ b/src/api/system/dept.js
@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+// 查询部门列表
+export function listDept(query) {
+ return request({
+ url: '/system/dept/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询部门列表(排除节点)
+export function listDeptExcludeChild(deptId) {
+ return request({
+ url: '/system/dept/list/exclude/' + deptId,
+ method: 'get'
+ })
+}
+
+// 查询部门详细
+export function getDept(deptId) {
+ return request({
+ url: '/system/dept/' + deptId,
+ method: 'get'
+ })
+}
+
+// 新增部门
+export function addDept(data) {
+ return request({
+ url: '/system/dept',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改部门
+export function updateDept(data) {
+ return request({
+ url: '/system/dept',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除部门
+export function delDept(deptId) {
+ return request({
+ url: '/system/dept/' + deptId,
+ method: 'delete'
+ })
+}
diff --git a/src/api/system/dict/data.js b/src/api/system/dict/data.js
new file mode 100644
index 0000000..6c9eb79
--- /dev/null
+++ b/src/api/system/dict/data.js
@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+// 查询字典数据列表
+export function listData(query) {
+ return request({
+ url: '/system/dict/data/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询字典数据详细
+export function getData(dictCode) {
+ return request({
+ url: '/system/dict/data/' + dictCode,
+ method: 'get'
+ })
+}
+
+// 根据字典类型查询字典数据信息
+export function getDicts(dictType) {
+ return request({
+ url: '/system/dict/data/type/' + dictType,
+ method: 'get'
+ })
+}
+
+// 新增字典数据
+export function addData(data) {
+ return request({
+ url: '/system/dict/data',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改字典数据
+export function updateData(data) {
+ return request({
+ url: '/system/dict/data',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除字典数据
+export function delData(dictCode) {
+ return request({
+ url: '/system/dict/data/' + dictCode,
+ method: 'delete'
+ })
+}
diff --git a/src/api/system/dict/type.js b/src/api/system/dict/type.js
new file mode 100644
index 0000000..a0254ba
--- /dev/null
+++ b/src/api/system/dict/type.js
@@ -0,0 +1,60 @@
+import request from '@/utils/request'
+
+// 查询字典类型列表
+export function listType(query) {
+ return request({
+ url: '/system/dict/type/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询字典类型详细
+export function getType(dictId) {
+ return request({
+ url: '/system/dict/type/' + dictId,
+ method: 'get'
+ })
+}
+
+// 新增字典类型
+export function addType(data) {
+ return request({
+ url: '/system/dict/type',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改字典类型
+export function updateType(data) {
+ return request({
+ url: '/system/dict/type',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除字典类型
+export function delType(dictId) {
+ return request({
+ url: '/system/dict/type/' + dictId,
+ method: 'delete'
+ })
+}
+
+// 刷新字典缓存
+export function refreshCache() {
+ return request({
+ url: '/system/dict/type/refreshCache',
+ method: 'delete'
+ })
+}
+
+// 获取字典选择框列表
+export function optionselect() {
+ return request({
+ url: '/system/dict/type/optionselect',
+ method: 'get'
+ })
+}
diff --git a/src/api/system/menu.js b/src/api/system/menu.js
new file mode 100644
index 0000000..f6415c6
--- /dev/null
+++ b/src/api/system/menu.js
@@ -0,0 +1,60 @@
+import request from '@/utils/request'
+
+// 查询菜单列表
+export function listMenu(query) {
+ return request({
+ url: '/system/menu/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询菜单详细
+export function getMenu(menuId) {
+ return request({
+ url: '/system/menu/' + menuId,
+ method: 'get'
+ })
+}
+
+// 查询菜单下拉树结构
+export function treeselect() {
+ return request({
+ url: '/system/menu/treeselect',
+ method: 'get'
+ })
+}
+
+// 根据角色ID查询菜单下拉树结构
+export function roleMenuTreeselect(roleId) {
+ return request({
+ url: '/system/menu/roleMenuTreeselect/' + roleId,
+ method: 'get'
+ })
+}
+
+// 新增菜单
+export function addMenu(data) {
+ return request({
+ url: '/system/menu',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改菜单
+export function updateMenu(data) {
+ return request({
+ url: '/system/menu',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除菜单
+export function delMenu(menuId) {
+ return request({
+ url: '/system/menu/' + menuId,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/src/api/system/notice.js b/src/api/system/notice.js
new file mode 100644
index 0000000..c274ea5
--- /dev/null
+++ b/src/api/system/notice.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询公告列表
+export function listNotice(query) {
+ return request({
+ url: '/system/notice/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询公告详细
+export function getNotice(noticeId) {
+ return request({
+ url: '/system/notice/' + noticeId,
+ method: 'get'
+ })
+}
+
+// 新增公告
+export function addNotice(data) {
+ return request({
+ url: '/system/notice',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改公告
+export function updateNotice(data) {
+ return request({
+ url: '/system/notice',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除公告
+export function delNotice(noticeId) {
+ return request({
+ url: '/system/notice/' + noticeId,
+ method: 'delete'
+ })
+}
\ No newline at end of file
diff --git a/src/api/system/oss.js b/src/api/system/oss.js
new file mode 100644
index 0000000..7d80026
--- /dev/null
+++ b/src/api/system/oss.js
@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+
+// 查询OSS对象存储列表
+export function listOss(query) {
+ return request({
+ url: '/system/oss/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询OSS对象基于id串
+export function listByIds(ossId) {
+ return request({
+ url: '/system/oss/listByIds/' + ossId,
+ method: 'get'
+ })
+}
+
+// 删除OSS对象存储
+export function delOss(ossId) {
+ return request({
+ url: '/system/oss/' + ossId,
+ method: 'delete'
+ })
+}
+
diff --git a/src/api/system/ossConfig.js b/src/api/system/ossConfig.js
new file mode 100644
index 0000000..f290762
--- /dev/null
+++ b/src/api/system/ossConfig.js
@@ -0,0 +1,58 @@
+import request from '@/utils/request'
+
+// 查询对象存储配置列表
+export function listOssConfig(query) {
+ return request({
+ url: '/system/oss/config/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询对象存储配置详细
+export function getOssConfig(ossConfigId) {
+ return request({
+ url: '/system/oss/config/' + ossConfigId,
+ method: 'get'
+ })
+}
+
+// 新增对象存储配置
+export function addOssConfig(data) {
+ return request({
+ url: '/system/oss/config',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改对象存储配置
+export function updateOssConfig(data) {
+ return request({
+ url: '/system/oss/config',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除对象存储配置
+export function delOssConfig(ossConfigId) {
+ return request({
+ url: '/system/oss/config/' + ossConfigId,
+ method: 'delete'
+ })
+}
+
+// 对象存储状态修改
+export function changeOssConfigStatus(ossConfigId, status, configKey) {
+ const data = {
+ ossConfigId,
+ status,
+ configKey
+ }
+ return request({
+ url: '/system/oss/config/changeStatus',
+ method: 'put',
+ data: data
+ })
+}
diff --git a/src/api/system/post.js b/src/api/system/post.js
new file mode 100644
index 0000000..1a8e9ca
--- /dev/null
+++ b/src/api/system/post.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询岗位列表
+export function listPost(query) {
+ return request({
+ url: '/system/post/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询岗位详细
+export function getPost(postId) {
+ return request({
+ url: '/system/post/' + postId,
+ method: 'get'
+ })
+}
+
+// 新增岗位
+export function addPost(data) {
+ return request({
+ url: '/system/post',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改岗位
+export function updatePost(data) {
+ return request({
+ url: '/system/post',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除岗位
+export function delPost(postId) {
+ return request({
+ url: '/system/post/' + postId,
+ method: 'delete'
+ })
+}
diff --git a/src/api/system/role.js b/src/api/system/role.js
new file mode 100644
index 0000000..f13e6f4
--- /dev/null
+++ b/src/api/system/role.js
@@ -0,0 +1,119 @@
+import request from '@/utils/request'
+
+// 查询角色列表
+export function listRole(query) {
+ return request({
+ url: '/system/role/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询角色详细
+export function getRole(roleId) {
+ return request({
+ url: '/system/role/' + roleId,
+ method: 'get'
+ })
+}
+
+// 新增角色
+export function addRole(data) {
+ return request({
+ url: '/system/role',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改角色
+export function updateRole(data) {
+ return request({
+ url: '/system/role',
+ method: 'put',
+ data: data
+ })
+}
+
+// 角色数据权限
+export function dataScope(data) {
+ return request({
+ url: '/system/role/dataScope',
+ method: 'put',
+ data: data
+ })
+}
+
+// 角色状态修改
+export function changeRoleStatus(roleId, status) {
+ const data = {
+ roleId,
+ status
+ }
+ return request({
+ url: '/system/role/changeStatus',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除角色
+export function delRole(roleId) {
+ return request({
+ url: '/system/role/' + roleId,
+ method: 'delete'
+ })
+}
+
+// 查询角色已授权用户列表
+export function allocatedUserList(query) {
+ return request({
+ url: '/system/role/authUser/allocatedList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询角色未授权用户列表
+export function unallocatedUserList(query) {
+ return request({
+ url: '/system/role/authUser/unallocatedList',
+ method: 'get',
+ params: query
+ })
+}
+
+// 取消用户授权角色
+export function authUserCancel(data) {
+ return request({
+ url: '/system/role/authUser/cancel',
+ method: 'put',
+ data: data
+ })
+}
+
+// 批量取消用户授权角色
+export function authUserCancelAll(data) {
+ return request({
+ url: '/system/role/authUser/cancelAll',
+ method: 'put',
+ params: data
+ })
+}
+
+// 授权用户选择
+export function authUserSelectAll(data) {
+ return request({
+ url: '/system/role/authUser/selectAll',
+ method: 'put',
+ params: data
+ })
+}
+
+// 根据角色ID查询部门树结构
+export function deptTreeSelect(roleId) {
+ return request({
+ url: '/system/role/deptTree/' + roleId,
+ method: 'get'
+ })
+}
diff --git a/src/api/system/user.js b/src/api/system/user.js
new file mode 100644
index 0000000..f2f76ef
--- /dev/null
+++ b/src/api/system/user.js
@@ -0,0 +1,135 @@
+import request from '@/utils/request'
+import { parseStrEmpty } from "@/utils/ruoyi";
+
+// 查询用户列表
+export function listUser(query) {
+ return request({
+ url: '/system/user/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询用户详细
+export function getUser(userId) {
+ return request({
+ url: '/system/user/' + parseStrEmpty(userId),
+ method: 'get'
+ })
+}
+
+// 新增用户
+export function addUser(data) {
+ return request({
+ url: '/system/user',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改用户
+export function updateUser(data) {
+ return request({
+ url: '/system/user',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除用户
+export function delUser(userId) {
+ return request({
+ url: '/system/user/' + userId,
+ method: 'delete'
+ })
+}
+
+// 用户密码重置
+export function resetUserPwd(userId, password) {
+ const data = {
+ userId,
+ password
+ }
+ return request({
+ url: '/system/user/resetPwd',
+ method: 'put',
+ data: data
+ })
+}
+
+// 用户状态修改
+export function changeUserStatus(userId, status) {
+ const data = {
+ userId,
+ status
+ }
+ return request({
+ url: '/system/user/changeStatus',
+ method: 'put',
+ data: data
+ })
+}
+
+// 查询用户个人信息
+export function getUserProfile() {
+ return request({
+ url: '/system/user/profile',
+ method: 'get'
+ })
+}
+
+// 修改用户个人信息
+export function updateUserProfile(data) {
+ return request({
+ url: '/system/user/profile',
+ method: 'put',
+ data: data
+ })
+}
+
+// 用户密码重置
+export function updateUserPwd(oldPassword, newPassword) {
+ const data = {
+ oldPassword,
+ newPassword
+ }
+ return request({
+ url: '/system/user/profile/updatePwd',
+ method: 'put',
+ params: data
+ })
+}
+
+// 用户头像上传
+export function uploadAvatar(data) {
+ return request({
+ url: '/system/user/profile/avatar',
+ method: 'post',
+ data: data
+ })
+}
+
+// 查询授权角色
+export function getAuthRole(userId) {
+ return request({
+ url: '/system/user/authRole/' + userId,
+ method: 'get'
+ })
+}
+
+// 保存授权角色
+export function updateAuthRole(data) {
+ return request({
+ url: '/system/user/authRole',
+ method: 'put',
+ params: data
+ })
+}
+
+// 查询部门下拉树结构
+export function deptTreeSelect() {
+ return request({
+ url: '/system/user/deptTree',
+ method: 'get'
+ })
+}
diff --git a/src/api/tool/gen.js b/src/api/tool/gen.js
new file mode 100644
index 0000000..65ddfea
--- /dev/null
+++ b/src/api/tool/gen.js
@@ -0,0 +1,86 @@
+import request from '@/utils/request'
+
+// 查询生成表数据
+export function listTable(query) {
+ return request({
+ headers: { 'datasource': localStorage.getItem("dataName") },
+ url: '/tool/gen/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询db数据库列表
+export function listDbTable(query) {
+ return request({
+ headers: { 'datasource': localStorage.getItem("dataName") },
+ url: '/tool/gen/db/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询表详细信息
+export function getGenTable(tableId) {
+ return request({
+ headers: { 'datasource': localStorage.getItem("dataName") },
+ url: '/tool/gen/' + tableId,
+ method: 'get'
+ })
+}
+
+// 修改代码生成信息
+export function updateGenTable(data) {
+ return request({
+ headers: { 'datasource': localStorage.getItem("dataName") },
+ url: '/tool/gen',
+ method: 'put',
+ data: data
+ })
+}
+
+// 导入表
+export function importTable(data) {
+ return request({
+ headers: { 'datasource': localStorage.getItem("dataName") },
+ url: '/tool/gen/importTable',
+ method: 'post',
+ params: data
+ })
+}
+
+// 预览生成代码
+export function previewTable(tableId) {
+ return request({
+ headers: { 'datasource': localStorage.getItem("dataName") },
+ url: '/tool/gen/preview/' + tableId,
+ method: 'get'
+ })
+}
+
+// 删除表数据
+export function delTable(tableId) {
+ return request({
+ headers: { 'datasource': localStorage.getItem("dataName") },
+ url: '/tool/gen/' + tableId,
+ method: 'delete'
+ })
+}
+
+// 生成代码(自定义路径)
+export function genCode(tableName) {
+ return request({
+ headers: { 'datasource': localStorage.getItem("dataName") },
+ url: '/tool/gen/genCode/' + tableName,
+ method: 'get'
+ })
+}
+
+// 同步数据库
+export function synchDb(tableName) {
+ return request({
+ headers: { 'datasource': localStorage.getItem("dataName") },
+ url: '/tool/gen/synchDb/' + tableName,
+ method: 'get'
+ })
+}
diff --git a/src/assets/401_images/401.gif b/src/assets/401_images/401.gif
new file mode 100644
index 0000000..cd6e0d9
Binary files /dev/null and b/src/assets/401_images/401.gif differ
diff --git a/src/assets/404_images/404.png b/src/assets/404_images/404.png
new file mode 100644
index 0000000..3d8e230
Binary files /dev/null and b/src/assets/404_images/404.png differ
diff --git a/src/assets/404_images/404_cloud.png b/src/assets/404_images/404_cloud.png
new file mode 100644
index 0000000..c6281d0
Binary files /dev/null and b/src/assets/404_images/404_cloud.png differ
diff --git a/src/assets/font/Alibaba-PuHuiTi-Bold.otf b/src/assets/font/Alibaba-PuHuiTi-Bold.otf
new file mode 100644
index 0000000..2ed2026
Binary files /dev/null and b/src/assets/font/Alibaba-PuHuiTi-Bold.otf differ
diff --git a/src/assets/font/Alibaba-PuHuiTi-Heavy.otf b/src/assets/font/Alibaba-PuHuiTi-Heavy.otf
new file mode 100644
index 0000000..28c3b45
Binary files /dev/null and b/src/assets/font/Alibaba-PuHuiTi-Heavy.otf differ
diff --git a/src/assets/font/Alibaba-PuHuiTi-Light.otf b/src/assets/font/Alibaba-PuHuiTi-Light.otf
new file mode 100644
index 0000000..3f4a6e3
Binary files /dev/null and b/src/assets/font/Alibaba-PuHuiTi-Light.otf differ
diff --git a/src/assets/font/Alibaba-PuHuiTi-Medium.otf b/src/assets/font/Alibaba-PuHuiTi-Medium.otf
new file mode 100644
index 0000000..a308250
Binary files /dev/null and b/src/assets/font/Alibaba-PuHuiTi-Medium.otf differ
diff --git a/src/assets/font/Alibaba-PuHuiTi-Regular.otf b/src/assets/font/Alibaba-PuHuiTi-Regular.otf
new file mode 100644
index 0000000..5960ba1
Binary files /dev/null and b/src/assets/font/Alibaba-PuHuiTi-Regular.otf differ
diff --git a/src/assets/font/SourceHanSansCN-Bold.otf b/src/assets/font/SourceHanSansCN-Bold.otf
new file mode 100644
index 0000000..4b3429a
Binary files /dev/null and b/src/assets/font/SourceHanSansCN-Bold.otf differ
diff --git a/src/assets/font/SourceHanSansCN-ExtraLight.otf b/src/assets/font/SourceHanSansCN-ExtraLight.otf
new file mode 100644
index 0000000..5cad7ff
Binary files /dev/null and b/src/assets/font/SourceHanSansCN-ExtraLight.otf differ
diff --git a/src/assets/font/SourceHanSansCN-Heavy.otf b/src/assets/font/SourceHanSansCN-Heavy.otf
new file mode 100644
index 0000000..58e1ca5
Binary files /dev/null and b/src/assets/font/SourceHanSansCN-Heavy.otf differ
diff --git a/src/assets/font/SourceHanSansCN-Light.otf b/src/assets/font/SourceHanSansCN-Light.otf
new file mode 100644
index 0000000..1cff8e6
Binary files /dev/null and b/src/assets/font/SourceHanSansCN-Light.otf differ
diff --git a/src/assets/font/SourceHanSansCN-Medium.otf b/src/assets/font/SourceHanSansCN-Medium.otf
new file mode 100644
index 0000000..53e03e0
Binary files /dev/null and b/src/assets/font/SourceHanSansCN-Medium.otf differ
diff --git a/src/assets/font/SourceHanSansCN-Normal.otf b/src/assets/font/SourceHanSansCN-Normal.otf
new file mode 100644
index 0000000..091f56d
Binary files /dev/null and b/src/assets/font/SourceHanSansCN-Normal.otf differ
diff --git a/src/assets/font/SourceHanSansCN-Regular.otf b/src/assets/font/SourceHanSansCN-Regular.otf
new file mode 100644
index 0000000..886f82f
Binary files /dev/null and b/src/assets/font/SourceHanSansCN-Regular.otf differ
diff --git a/src/assets/icons/index.js b/src/assets/icons/index.js
new file mode 100644
index 0000000..2c6b309
--- /dev/null
+++ b/src/assets/icons/index.js
@@ -0,0 +1,9 @@
+import Vue from 'vue'
+import SvgIcon from '@/components/SvgIcon'// svg component
+
+// register globally
+Vue.component('svg-icon', SvgIcon)
+
+const req = require.context('./svg', false, /\.svg$/)
+const requireAll = requireContext => requireContext.keys().map(requireContext)
+requireAll(req)
diff --git a/src/assets/icons/svg/404.svg b/src/assets/icons/svg/404.svg
new file mode 100644
index 0000000..6df5019
--- /dev/null
+++ b/src/assets/icons/svg/404.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/bpmn-empty-state.svg b/src/assets/icons/svg/bpmn-empty-state.svg
new file mode 100644
index 0000000..e86cfd0
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-empty-state.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-association.svg b/src/assets/icons/svg/bpmn-icon-association.svg
new file mode 100644
index 0000000..f0cae69
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-association.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-business-rule-task.svg b/src/assets/icons/svg/bpmn-icon-business-rule-task.svg
new file mode 100644
index 0000000..a083982
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-business-rule-task.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-call-activity.svg b/src/assets/icons/svg/bpmn-icon-call-activity.svg
new file mode 100644
index 0000000..3041385
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-call-activity.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-collaboration.svg b/src/assets/icons/svg/bpmn-icon-collaboration.svg
new file mode 100644
index 0000000..d125e12
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-collaboration.svg
@@ -0,0 +1,11 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-conditional-flow.svg b/src/assets/icons/svg/bpmn-icon-conditional-flow.svg
new file mode 100644
index 0000000..5400c5b
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-conditional-flow.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-connection.svg b/src/assets/icons/svg/bpmn-icon-connection.svg
new file mode 100644
index 0000000..da05686
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-connection.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-data-input-output-association.svg b/src/assets/icons/svg/bpmn-icon-data-input-output-association.svg
new file mode 100644
index 0000000..4f15872
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-data-input-output-association.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-data-input.svg b/src/assets/icons/svg/bpmn-icon-data-input.svg
new file mode 100644
index 0000000..c3a6290
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-data-input.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-data-object.svg b/src/assets/icons/svg/bpmn-icon-data-object.svg
new file mode 100644
index 0000000..c113fbc
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-data-object.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-data-output.svg b/src/assets/icons/svg/bpmn-icon-data-output.svg
new file mode 100644
index 0000000..c01591c
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-data-output.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-data-store.svg b/src/assets/icons/svg/bpmn-icon-data-store.svg
new file mode 100644
index 0000000..a09d62c
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-data-store.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-default-flow.svg b/src/assets/icons/svg/bpmn-icon-default-flow.svg
new file mode 100644
index 0000000..b79e4a9
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-default-flow.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-cancel.svg b/src/assets/icons/svg/bpmn-icon-end-event-cancel.svg
new file mode 100644
index 0000000..c0b7c48
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-cancel.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-compensation.svg b/src/assets/icons/svg/bpmn-icon-end-event-compensation.svg
new file mode 100644
index 0000000..fd49978
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-compensation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-error.svg b/src/assets/icons/svg/bpmn-icon-end-event-error.svg
new file mode 100644
index 0000000..8242962
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-error.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-escalation.svg b/src/assets/icons/svg/bpmn-icon-end-event-escalation.svg
new file mode 100644
index 0000000..ed25b7a
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-escalation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-link.svg b/src/assets/icons/svg/bpmn-icon-end-event-link.svg
new file mode 100644
index 0000000..a59062d
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-link.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-message.svg b/src/assets/icons/svg/bpmn-icon-end-event-message.svg
new file mode 100644
index 0000000..6e3a35e
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-message.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-multiple.svg b/src/assets/icons/svg/bpmn-icon-end-event-multiple.svg
new file mode 100644
index 0000000..d4bdeeb
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-multiple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-none.svg b/src/assets/icons/svg/bpmn-icon-end-event-none.svg
new file mode 100644
index 0000000..9a802c7
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-none.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-signal.svg b/src/assets/icons/svg/bpmn-icon-end-event-signal.svg
new file mode 100644
index 0000000..8d546c1
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-signal.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-end-event-terminate.svg b/src/assets/icons/svg/bpmn-icon-end-event-terminate.svg
new file mode 100644
index 0000000..f2b958a
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-end-event-terminate.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-event-subprocess-expanded.svg b/src/assets/icons/svg/bpmn-icon-event-subprocess-expanded.svg
new file mode 100644
index 0000000..25d344e
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-event-subprocess-expanded.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-gateway-complex.svg b/src/assets/icons/svg/bpmn-icon-gateway-complex.svg
new file mode 100644
index 0000000..392618f
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-gateway-complex.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-gateway-eventbased.svg b/src/assets/icons/svg/bpmn-icon-gateway-eventbased.svg
new file mode 100644
index 0000000..9c7eddc
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-gateway-eventbased.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-gateway-none.svg b/src/assets/icons/svg/bpmn-icon-gateway-none.svg
new file mode 100644
index 0000000..652f58c
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-gateway-none.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-gateway-or.svg b/src/assets/icons/svg/bpmn-icon-gateway-or.svg
new file mode 100644
index 0000000..2dc1aa3
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-gateway-or.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-gateway-parallel.svg b/src/assets/icons/svg/bpmn-icon-gateway-parallel.svg
new file mode 100644
index 0000000..25e4413
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-gateway-parallel.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-gateway-xor.svg b/src/assets/icons/svg/bpmn-icon-gateway-xor.svg
new file mode 100644
index 0000000..c077770
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-gateway-xor.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-group.svg b/src/assets/icons/svg/bpmn-icon-group.svg
new file mode 100644
index 0000000..0e3624d
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-group.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-cancel.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-cancel.svg
new file mode 100644
index 0000000..a9bc77b
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-cancel.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-compensation.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-compensation.svg
new file mode 100644
index 0000000..bdc0285
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-compensation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-condition.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-condition.svg
new file mode 100644
index 0000000..49f8d7a
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-condition.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-error.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-error.svg
new file mode 100644
index 0000000..d158de0
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-error.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-escalation.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-escalation.svg
new file mode 100644
index 0000000..acd0956
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-escalation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-link.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-link.svg
new file mode 100644
index 0000000..0355de0
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-link.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-message.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-message.svg
new file mode 100644
index 0000000..0bd75bc
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-message.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-multiple.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-multiple.svg
new file mode 100644
index 0000000..8043c92
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-multiple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-condition.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-condition.svg
new file mode 100644
index 0000000..d53fd5a
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-condition.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-escalation.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-escalation.svg
new file mode 100644
index 0000000..b391196
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-escalation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-message.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-message.svg
new file mode 100644
index 0000000..e3b7c5e
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-message.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-multiple.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-multiple.svg
new file mode 100644
index 0000000..5fd199e
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-multiple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-parallel.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-parallel.svg
new file mode 100644
index 0000000..64f3f33
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-parallel.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-signal.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-signal.svg
new file mode 100644
index 0000000..2a1263f
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-signal.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-timer.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-timer.svg
new file mode 100644
index 0000000..58655ba
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-non-interrupting-timer.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-parallel-multiple.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-parallel-multiple.svg
new file mode 100644
index 0000000..83d5862
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-parallel-multiple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-signal.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-signal.svg
new file mode 100644
index 0000000..5190d22
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-signal.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-timer.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-timer.svg
new file mode 100644
index 0000000..2b20e28
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-catch-timer.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-none.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-none.svg
new file mode 100644
index 0000000..80b05f1
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-none.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-compensation.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-compensation.svg
new file mode 100644
index 0000000..e55a5a8
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-compensation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-escalation.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-escalation.svg
new file mode 100644
index 0000000..e933de1
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-escalation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-link.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-link.svg
new file mode 100644
index 0000000..9d9f043
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-link.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-message.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-message.svg
new file mode 100644
index 0000000..c350053
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-message.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-multiple.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-multiple.svg
new file mode 100644
index 0000000..e6b0471
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-multiple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-signal.svg b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-signal.svg
new file mode 100644
index 0000000..b8cf330
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-intermediate-event-throw-signal.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-lane.svg b/src/assets/icons/svg/bpmn-icon-lane.svg
new file mode 100644
index 0000000..dd3e944
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-lane.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-manual-task.svg b/src/assets/icons/svg/bpmn-icon-manual-task.svg
new file mode 100644
index 0000000..dc8a638
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-manual-task.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-message-flow.svg b/src/assets/icons/svg/bpmn-icon-message-flow.svg
new file mode 100644
index 0000000..b22bc92
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-message-flow.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-participant.svg b/src/assets/icons/svg/bpmn-icon-participant.svg
new file mode 100644
index 0000000..9d1e21b
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-participant.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-process.svg b/src/assets/icons/svg/bpmn-icon-process.svg
new file mode 100644
index 0000000..8103053
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-process.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-receive-task.svg b/src/assets/icons/svg/bpmn-icon-receive-task.svg
new file mode 100644
index 0000000..bd7aaef
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-receive-task.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-script-task.svg b/src/assets/icons/svg/bpmn-icon-script-task.svg
new file mode 100644
index 0000000..4dcb900
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-script-task.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-send-task.svg b/src/assets/icons/svg/bpmn-icon-send-task.svg
new file mode 100644
index 0000000..2d4fc95
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-send-task.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-service-task.svg b/src/assets/icons/svg/bpmn-icon-service-task.svg
new file mode 100644
index 0000000..e6bf51f
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-service-task.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-compensation.svg b/src/assets/icons/svg/bpmn-icon-start-event-compensation.svg
new file mode 100644
index 0000000..6ab859c
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-compensation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-condition.svg b/src/assets/icons/svg/bpmn-icon-start-event-condition.svg
new file mode 100644
index 0000000..e6c4dd7
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-condition.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-error.svg b/src/assets/icons/svg/bpmn-icon-start-event-error.svg
new file mode 100644
index 0000000..b347afb
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-error.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-escalation.svg b/src/assets/icons/svg/bpmn-icon-start-event-escalation.svg
new file mode 100644
index 0000000..97991ec
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-escalation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-message.svg b/src/assets/icons/svg/bpmn-icon-start-event-message.svg
new file mode 100644
index 0000000..54b9e49
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-message.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-multiple.svg b/src/assets/icons/svg/bpmn-icon-start-event-multiple.svg
new file mode 100644
index 0000000..dae0f61
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-multiple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-condition.svg b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-condition.svg
new file mode 100644
index 0000000..4e7d8d2
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-condition.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-escalation.svg b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-escalation.svg
new file mode 100644
index 0000000..0d31752
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-escalation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-message.svg b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-message.svg
new file mode 100644
index 0000000..574367b
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-message.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-multiple.svg b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-multiple.svg
new file mode 100644
index 0000000..8e8b2b9
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-multiple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-parallel-multiple.svg b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-parallel-multiple.svg
new file mode 100644
index 0000000..75d35b8
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-parallel-multiple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-signal.svg b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-signal.svg
new file mode 100644
index 0000000..4fbee92
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-signal.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-timer.svg b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-timer.svg
new file mode 100644
index 0000000..e7d797b
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-non-interrupting-timer.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-none.svg b/src/assets/icons/svg/bpmn-icon-start-event-none.svg
new file mode 100644
index 0000000..a54e94a
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-none.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-parallel-multiple.svg b/src/assets/icons/svg/bpmn-icon-start-event-parallel-multiple.svg
new file mode 100644
index 0000000..3b5b16e
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-parallel-multiple.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-signal.svg b/src/assets/icons/svg/bpmn-icon-start-event-signal.svg
new file mode 100644
index 0000000..4dbd0bc
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-signal.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-start-event-timer.svg b/src/assets/icons/svg/bpmn-icon-start-event-timer.svg
new file mode 100644
index 0000000..da36f97
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-start-event-timer.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-subprocess-collapsed.svg b/src/assets/icons/svg/bpmn-icon-subprocess-collapsed.svg
new file mode 100644
index 0000000..e83cf1c
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-subprocess-collapsed.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-subprocess-expanded.svg b/src/assets/icons/svg/bpmn-icon-subprocess-expanded.svg
new file mode 100644
index 0000000..4469ea1
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-subprocess-expanded.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-task-none.svg b/src/assets/icons/svg/bpmn-icon-task-none.svg
new file mode 100644
index 0000000..8a1c6cf
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-task-none.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-text-annotation.svg b/src/assets/icons/svg/bpmn-icon-text-annotation.svg
new file mode 100644
index 0000000..9900edb
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-text-annotation.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-transaction.svg b/src/assets/icons/svg/bpmn-icon-transaction.svg
new file mode 100644
index 0000000..8769f6b
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-transaction.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-icon-user-task.svg b/src/assets/icons/svg/bpmn-icon-user-task.svg
new file mode 100644
index 0000000..ef41afc
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-icon-user-task.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/icons/svg/bpmn-multiple-state.svg b/src/assets/icons/svg/bpmn-multiple-state.svg
new file mode 100644
index 0000000..958818e
--- /dev/null
+++ b/src/assets/icons/svg/bpmn-multiple-state.svg
@@ -0,0 +1,22 @@
+
diff --git a/src/assets/icons/svg/bug.svg b/src/assets/icons/svg/bug.svg
new file mode 100644
index 0000000..05a150d
--- /dev/null
+++ b/src/assets/icons/svg/bug.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/build.svg b/src/assets/icons/svg/build.svg
new file mode 100644
index 0000000..97c4688
--- /dev/null
+++ b/src/assets/icons/svg/build.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/button.svg b/src/assets/icons/svg/button.svg
new file mode 100644
index 0000000..904fddc
--- /dev/null
+++ b/src/assets/icons/svg/button.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/cascader.svg b/src/assets/icons/svg/cascader.svg
new file mode 100644
index 0000000..e256024
--- /dev/null
+++ b/src/assets/icons/svg/cascader.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/chart.svg b/src/assets/icons/svg/chart.svg
new file mode 100644
index 0000000..27728fb
--- /dev/null
+++ b/src/assets/icons/svg/chart.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/checkbox.svg b/src/assets/icons/svg/checkbox.svg
new file mode 100644
index 0000000..013fd3a
--- /dev/null
+++ b/src/assets/icons/svg/checkbox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/clipboard.svg b/src/assets/icons/svg/clipboard.svg
new file mode 100644
index 0000000..90923ff
--- /dev/null
+++ b/src/assets/icons/svg/clipboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/code.svg b/src/assets/icons/svg/code.svg
new file mode 100644
index 0000000..5f9c5ab
--- /dev/null
+++ b/src/assets/icons/svg/code.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/color.svg b/src/assets/icons/svg/color.svg
new file mode 100644
index 0000000..44a81aa
--- /dev/null
+++ b/src/assets/icons/svg/color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/component.svg b/src/assets/icons/svg/component.svg
new file mode 100644
index 0000000..29c3458
--- /dev/null
+++ b/src/assets/icons/svg/component.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/dashboard.svg b/src/assets/icons/svg/dashboard.svg
new file mode 100644
index 0000000..5317d37
--- /dev/null
+++ b/src/assets/icons/svg/dashboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/date-range.svg b/src/assets/icons/svg/date-range.svg
new file mode 100644
index 0000000..fda571e
--- /dev/null
+++ b/src/assets/icons/svg/date-range.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/date.svg b/src/assets/icons/svg/date.svg
new file mode 100644
index 0000000..52dc73e
--- /dev/null
+++ b/src/assets/icons/svg/date.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/dict.svg b/src/assets/icons/svg/dict.svg
new file mode 100644
index 0000000..4849377
--- /dev/null
+++ b/src/assets/icons/svg/dict.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/documentation.svg b/src/assets/icons/svg/documentation.svg
new file mode 100644
index 0000000..7043122
--- /dev/null
+++ b/src/assets/icons/svg/documentation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/download.svg b/src/assets/icons/svg/download.svg
new file mode 100644
index 0000000..c896951
--- /dev/null
+++ b/src/assets/icons/svg/download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/drag.svg b/src/assets/icons/svg/drag.svg
new file mode 100644
index 0000000..4185d3c
--- /dev/null
+++ b/src/assets/icons/svg/drag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/druid.svg b/src/assets/icons/svg/druid.svg
new file mode 100644
index 0000000..a2b4b4e
--- /dev/null
+++ b/src/assets/icons/svg/druid.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/edit.svg b/src/assets/icons/svg/edit.svg
new file mode 100644
index 0000000..d26101f
--- /dev/null
+++ b/src/assets/icons/svg/edit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/education.svg b/src/assets/icons/svg/education.svg
new file mode 100644
index 0000000..7bfb01d
--- /dev/null
+++ b/src/assets/icons/svg/education.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/email.svg b/src/assets/icons/svg/email.svg
new file mode 100644
index 0000000..74d25e2
--- /dev/null
+++ b/src/assets/icons/svg/email.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/example.svg b/src/assets/icons/svg/example.svg
new file mode 100644
index 0000000..46f42b5
--- /dev/null
+++ b/src/assets/icons/svg/example.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/excel.svg b/src/assets/icons/svg/excel.svg
new file mode 100644
index 0000000..74d97b8
--- /dev/null
+++ b/src/assets/icons/svg/excel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/exit-fullscreen.svg b/src/assets/icons/svg/exit-fullscreen.svg
new file mode 100644
index 0000000..485c128
--- /dev/null
+++ b/src/assets/icons/svg/exit-fullscreen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/eye-open.svg b/src/assets/icons/svg/eye-open.svg
new file mode 100644
index 0000000..88dcc98
--- /dev/null
+++ b/src/assets/icons/svg/eye-open.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/eye.svg b/src/assets/icons/svg/eye.svg
new file mode 100644
index 0000000..16ed2d8
--- /dev/null
+++ b/src/assets/icons/svg/eye.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/form.svg b/src/assets/icons/svg/form.svg
new file mode 100644
index 0000000..dcbaa18
--- /dev/null
+++ b/src/assets/icons/svg/form.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/fullscreen.svg b/src/assets/icons/svg/fullscreen.svg
new file mode 100644
index 0000000..0e86b6f
--- /dev/null
+++ b/src/assets/icons/svg/fullscreen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/github.svg b/src/assets/icons/svg/github.svg
new file mode 100644
index 0000000..db0a0d4
--- /dev/null
+++ b/src/assets/icons/svg/github.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/guide.svg b/src/assets/icons/svg/guide.svg
new file mode 100644
index 0000000..b271001
--- /dev/null
+++ b/src/assets/icons/svg/guide.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/icon-rect.svg b/src/assets/icons/svg/icon-rect.svg
new file mode 100644
index 0000000..11c3787
--- /dev/null
+++ b/src/assets/icons/svg/icon-rect.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/icon.svg b/src/assets/icons/svg/icon.svg
new file mode 100644
index 0000000..82be8ee
--- /dev/null
+++ b/src/assets/icons/svg/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/input.svg b/src/assets/icons/svg/input.svg
new file mode 100644
index 0000000..ab91381
--- /dev/null
+++ b/src/assets/icons/svg/input.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/international.svg b/src/assets/icons/svg/international.svg
new file mode 100644
index 0000000..e9b56ee
--- /dev/null
+++ b/src/assets/icons/svg/international.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/job.svg b/src/assets/icons/svg/job.svg
new file mode 100644
index 0000000..2a93a25
--- /dev/null
+++ b/src/assets/icons/svg/job.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/language.svg b/src/assets/icons/svg/language.svg
new file mode 100644
index 0000000..0082b57
--- /dev/null
+++ b/src/assets/icons/svg/language.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/link.svg b/src/assets/icons/svg/link.svg
new file mode 100644
index 0000000..48197ba
--- /dev/null
+++ b/src/assets/icons/svg/link.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/list.svg b/src/assets/icons/svg/list.svg
new file mode 100644
index 0000000..20259ed
--- /dev/null
+++ b/src/assets/icons/svg/list.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/lock.svg b/src/assets/icons/svg/lock.svg
new file mode 100644
index 0000000..74fee54
--- /dev/null
+++ b/src/assets/icons/svg/lock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/log.svg b/src/assets/icons/svg/log.svg
new file mode 100644
index 0000000..d879d33
--- /dev/null
+++ b/src/assets/icons/svg/log.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/logininfor.svg b/src/assets/icons/svg/logininfor.svg
new file mode 100644
index 0000000..267f844
--- /dev/null
+++ b/src/assets/icons/svg/logininfor.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/message.svg b/src/assets/icons/svg/message.svg
new file mode 100644
index 0000000..14ca817
--- /dev/null
+++ b/src/assets/icons/svg/message.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/money.svg b/src/assets/icons/svg/money.svg
new file mode 100644
index 0000000..c1580de
--- /dev/null
+++ b/src/assets/icons/svg/money.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/monitor.svg b/src/assets/icons/svg/monitor.svg
new file mode 100644
index 0000000..bc308cb
--- /dev/null
+++ b/src/assets/icons/svg/monitor.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/nested.svg b/src/assets/icons/svg/nested.svg
new file mode 100644
index 0000000..06713a8
--- /dev/null
+++ b/src/assets/icons/svg/nested.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/number.svg b/src/assets/icons/svg/number.svg
new file mode 100644
index 0000000..ad5ce9a
--- /dev/null
+++ b/src/assets/icons/svg/number.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/online.svg b/src/assets/icons/svg/online.svg
new file mode 100644
index 0000000..330a202
--- /dev/null
+++ b/src/assets/icons/svg/online.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/password.svg b/src/assets/icons/svg/password.svg
new file mode 100644
index 0000000..6c64def
--- /dev/null
+++ b/src/assets/icons/svg/password.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/pdf.svg b/src/assets/icons/svg/pdf.svg
new file mode 100644
index 0000000..957aa0c
--- /dev/null
+++ b/src/assets/icons/svg/pdf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/people.svg b/src/assets/icons/svg/people.svg
new file mode 100644
index 0000000..2bd54ae
--- /dev/null
+++ b/src/assets/icons/svg/people.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/peoples.svg b/src/assets/icons/svg/peoples.svg
new file mode 100644
index 0000000..aab852e
--- /dev/null
+++ b/src/assets/icons/svg/peoples.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/phone.svg b/src/assets/icons/svg/phone.svg
new file mode 100644
index 0000000..ab8e8c4
--- /dev/null
+++ b/src/assets/icons/svg/phone.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/post.svg b/src/assets/icons/svg/post.svg
new file mode 100644
index 0000000..2922c61
--- /dev/null
+++ b/src/assets/icons/svg/post.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/qq.svg b/src/assets/icons/svg/qq.svg
new file mode 100644
index 0000000..ee13d4e
--- /dev/null
+++ b/src/assets/icons/svg/qq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/question.svg b/src/assets/icons/svg/question.svg
new file mode 100644
index 0000000..cf75bd4
--- /dev/null
+++ b/src/assets/icons/svg/question.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/radio.svg b/src/assets/icons/svg/radio.svg
new file mode 100644
index 0000000..0cde345
--- /dev/null
+++ b/src/assets/icons/svg/radio.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/rate.svg b/src/assets/icons/svg/rate.svg
new file mode 100644
index 0000000..aa3b14d
--- /dev/null
+++ b/src/assets/icons/svg/rate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/redis-list.svg b/src/assets/icons/svg/redis-list.svg
new file mode 100644
index 0000000..98a15b2
--- /dev/null
+++ b/src/assets/icons/svg/redis-list.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/redis.svg b/src/assets/icons/svg/redis.svg
new file mode 100644
index 0000000..2f1d62d
--- /dev/null
+++ b/src/assets/icons/svg/redis.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/row.svg b/src/assets/icons/svg/row.svg
new file mode 100644
index 0000000..0780992
--- /dev/null
+++ b/src/assets/icons/svg/row.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/search.svg b/src/assets/icons/svg/search.svg
new file mode 100644
index 0000000..84233dd
--- /dev/null
+++ b/src/assets/icons/svg/search.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/select.svg b/src/assets/icons/svg/select.svg
new file mode 100644
index 0000000..d628382
--- /dev/null
+++ b/src/assets/icons/svg/select.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/server.svg b/src/assets/icons/svg/server.svg
new file mode 100644
index 0000000..eb287e3
--- /dev/null
+++ b/src/assets/icons/svg/server.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/shopping.svg b/src/assets/icons/svg/shopping.svg
new file mode 100644
index 0000000..87513e7
--- /dev/null
+++ b/src/assets/icons/svg/shopping.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/size.svg b/src/assets/icons/svg/size.svg
new file mode 100644
index 0000000..ddb25b8
--- /dev/null
+++ b/src/assets/icons/svg/size.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/skill.svg b/src/assets/icons/svg/skill.svg
new file mode 100644
index 0000000..a3b7312
--- /dev/null
+++ b/src/assets/icons/svg/skill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/slider.svg b/src/assets/icons/svg/slider.svg
new file mode 100644
index 0000000..fbe4f39
--- /dev/null
+++ b/src/assets/icons/svg/slider.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/star.svg b/src/assets/icons/svg/star.svg
new file mode 100644
index 0000000..6cf86e6
--- /dev/null
+++ b/src/assets/icons/svg/star.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/swagger.svg b/src/assets/icons/svg/swagger.svg
new file mode 100644
index 0000000..05d4e7b
--- /dev/null
+++ b/src/assets/icons/svg/swagger.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/switch.svg b/src/assets/icons/svg/switch.svg
new file mode 100644
index 0000000..0ba61e3
--- /dev/null
+++ b/src/assets/icons/svg/switch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/system.svg b/src/assets/icons/svg/system.svg
new file mode 100644
index 0000000..5992593
--- /dev/null
+++ b/src/assets/icons/svg/system.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/tab.svg b/src/assets/icons/svg/tab.svg
new file mode 100644
index 0000000..b4b48e4
--- /dev/null
+++ b/src/assets/icons/svg/tab.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/table.svg b/src/assets/icons/svg/table.svg
new file mode 100644
index 0000000..0e3dc9d
--- /dev/null
+++ b/src/assets/icons/svg/table.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/textarea.svg b/src/assets/icons/svg/textarea.svg
new file mode 100644
index 0000000..2709f29
--- /dev/null
+++ b/src/assets/icons/svg/textarea.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/theme.svg b/src/assets/icons/svg/theme.svg
new file mode 100644
index 0000000..5982a2f
--- /dev/null
+++ b/src/assets/icons/svg/theme.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/time-range.svg b/src/assets/icons/svg/time-range.svg
new file mode 100644
index 0000000..13c1202
--- /dev/null
+++ b/src/assets/icons/svg/time-range.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/time.svg b/src/assets/icons/svg/time.svg
new file mode 100644
index 0000000..b376e32
--- /dev/null
+++ b/src/assets/icons/svg/time.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/tool.svg b/src/assets/icons/svg/tool.svg
new file mode 100644
index 0000000..48e0e35
--- /dev/null
+++ b/src/assets/icons/svg/tool.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/tree-table.svg b/src/assets/icons/svg/tree-table.svg
new file mode 100644
index 0000000..8aafdb8
--- /dev/null
+++ b/src/assets/icons/svg/tree-table.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/tree.svg b/src/assets/icons/svg/tree.svg
new file mode 100644
index 0000000..dd4b7dd
--- /dev/null
+++ b/src/assets/icons/svg/tree.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/upload.svg b/src/assets/icons/svg/upload.svg
new file mode 100644
index 0000000..bae49c0
--- /dev/null
+++ b/src/assets/icons/svg/upload.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/user.svg b/src/assets/icons/svg/user.svg
new file mode 100644
index 0000000..0ba0716
--- /dev/null
+++ b/src/assets/icons/svg/user.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/validCode.svg b/src/assets/icons/svg/validCode.svg
new file mode 100644
index 0000000..4fe305a
--- /dev/null
+++ b/src/assets/icons/svg/validCode.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/wechat.svg b/src/assets/icons/svg/wechat.svg
new file mode 100644
index 0000000..c586e55
--- /dev/null
+++ b/src/assets/icons/svg/wechat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/zip.svg b/src/assets/icons/svg/zip.svg
new file mode 100644
index 0000000..f806fc4
--- /dev/null
+++ b/src/assets/icons/svg/zip.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/svgo.yml b/src/assets/icons/svgo.yml
new file mode 100644
index 0000000..d11906a
--- /dev/null
+++ b/src/assets/icons/svgo.yml
@@ -0,0 +1,22 @@
+# replace default config
+
+# multipass: true
+# full: true
+
+plugins:
+
+ # - name
+ #
+ # or:
+ # - name: false
+ # - name: true
+ #
+ # or:
+ # - name:
+ # param1: 1
+ # param2: 2
+
+- removeAttrs:
+ attrs:
+ - 'fill'
+ - 'fill-rule'
diff --git a/src/assets/images/avatar.svg b/src/assets/images/avatar.svg
new file mode 100644
index 0000000..7708c0c
--- /dev/null
+++ b/src/assets/images/avatar.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/src/assets/images/bg-dot.png b/src/assets/images/bg-dot.png
new file mode 100644
index 0000000..1610b77
Binary files /dev/null and b/src/assets/images/bg-dot.png differ
diff --git a/src/assets/images/damage-tree/and.svg b/src/assets/images/damage-tree/and.svg
new file mode 100644
index 0000000..5d0b55d
--- /dev/null
+++ b/src/assets/images/damage-tree/and.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/src/assets/images/damage-tree/end-circle.svg b/src/assets/images/damage-tree/end-circle.svg
new file mode 100644
index 0000000..4c10e7b
--- /dev/null
+++ b/src/assets/images/damage-tree/end-circle.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/src/assets/images/damage-tree/line-marker.svg b/src/assets/images/damage-tree/line-marker.svg
new file mode 100644
index 0000000..23ccbf5
--- /dev/null
+++ b/src/assets/images/damage-tree/line-marker.svg
@@ -0,0 +1,11 @@
+
\ No newline at end of file
diff --git a/src/assets/images/damage-tree/or.svg b/src/assets/images/damage-tree/or.svg
new file mode 100644
index 0000000..7b65e83
--- /dev/null
+++ b/src/assets/images/damage-tree/or.svg
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/src/assets/images/damage-tree/rect-fill.svg b/src/assets/images/damage-tree/rect-fill.svg
new file mode 100644
index 0000000..71ba611
--- /dev/null
+++ b/src/assets/images/damage-tree/rect-fill.svg
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/src/assets/images/damage-tree/rect.svg b/src/assets/images/damage-tree/rect.svg
new file mode 100644
index 0000000..3f83ef1
--- /dev/null
+++ b/src/assets/images/damage-tree/rect.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/src/assets/images/damage-tree/select.svg b/src/assets/images/damage-tree/select.svg
new file mode 100644
index 0000000..9ed83b3
--- /dev/null
+++ b/src/assets/images/damage-tree/select.svg
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/src/assets/images/dark.svg b/src/assets/images/dark.svg
new file mode 100644
index 0000000..f646bd7
--- /dev/null
+++ b/src/assets/images/dark.svg
@@ -0,0 +1,39 @@
+
+
\ No newline at end of file
diff --git a/src/assets/images/empty.png b/src/assets/images/empty.png
new file mode 100644
index 0000000..f49d4e7
Binary files /dev/null and b/src/assets/images/empty.png differ
diff --git a/src/assets/images/icon-add.png b/src/assets/images/icon-add.png
new file mode 100644
index 0000000..cf17ffe
Binary files /dev/null and b/src/assets/images/icon-add.png differ
diff --git a/src/assets/images/icon-avatar.png b/src/assets/images/icon-avatar.png
new file mode 100644
index 0000000..601da84
Binary files /dev/null and b/src/assets/images/icon-avatar.png differ
diff --git a/src/assets/images/icon-date.png b/src/assets/images/icon-date.png
new file mode 100644
index 0000000..49f2625
Binary files /dev/null and b/src/assets/images/icon-date.png differ
diff --git a/src/assets/images/icon-delete.png b/src/assets/images/icon-delete.png
new file mode 100644
index 0000000..3f7f2e2
Binary files /dev/null and b/src/assets/images/icon-delete.png differ
diff --git a/src/assets/images/icon-export.png b/src/assets/images/icon-export.png
new file mode 100644
index 0000000..cdd4a39
Binary files /dev/null and b/src/assets/images/icon-export.png differ
diff --git a/src/assets/images/icon-import.png b/src/assets/images/icon-import.png
new file mode 100644
index 0000000..5572d6a
Binary files /dev/null and b/src/assets/images/icon-import.png differ
diff --git a/src/assets/images/icon-logout.png b/src/assets/images/icon-logout.png
new file mode 100644
index 0000000..3c7ab21
Binary files /dev/null and b/src/assets/images/icon-logout.png differ
diff --git a/src/assets/images/icon-message.png b/src/assets/images/icon-message.png
new file mode 100644
index 0000000..0ebad56
Binary files /dev/null and b/src/assets/images/icon-message.png differ
diff --git a/src/assets/images/icon-search.png b/src/assets/images/icon-search.png
new file mode 100644
index 0000000..0a21433
Binary files /dev/null and b/src/assets/images/icon-search.png differ
diff --git a/src/assets/images/icon-step-complete.png b/src/assets/images/icon-step-complete.png
new file mode 100644
index 0000000..0059e57
Binary files /dev/null and b/src/assets/images/icon-step-complete.png differ
diff --git a/src/assets/images/light.svg b/src/assets/images/light.svg
new file mode 100644
index 0000000..ab7cc08
--- /dev/null
+++ b/src/assets/images/light.svg
@@ -0,0 +1,39 @@
+
+
\ No newline at end of file
diff --git a/src/assets/images/login/bg-login.png b/src/assets/images/login/bg-login.png
new file mode 100644
index 0000000..4627fa4
Binary files /dev/null and b/src/assets/images/login/bg-login.png differ
diff --git a/src/assets/images/login/bg.png b/src/assets/images/login/bg.png
new file mode 100644
index 0000000..be43762
Binary files /dev/null and b/src/assets/images/login/bg.png differ
diff --git a/src/assets/images/login/decoration-login.png b/src/assets/images/login/decoration-login.png
new file mode 100644
index 0000000..6f5fd72
Binary files /dev/null and b/src/assets/images/login/decoration-login.png differ
diff --git a/src/assets/images/login/icon-account.png b/src/assets/images/login/icon-account.png
new file mode 100644
index 0000000..ec4b92e
Binary files /dev/null and b/src/assets/images/login/icon-account.png differ
diff --git a/src/assets/images/login/icon-dun.png b/src/assets/images/login/icon-dun.png
new file mode 100644
index 0000000..449626b
Binary files /dev/null and b/src/assets/images/login/icon-dun.png differ
diff --git a/src/assets/images/login/icon-pwd.png b/src/assets/images/login/icon-pwd.png
new file mode 100644
index 0000000..2a7049b
Binary files /dev/null and b/src/assets/images/login/icon-pwd.png differ
diff --git a/src/assets/images/login/login-title.png b/src/assets/images/login/login-title.png
new file mode 100644
index 0000000..ac16f02
Binary files /dev/null and b/src/assets/images/login/login-title.png differ
diff --git a/src/assets/images/login/main-title.png b/src/assets/images/login/main-title.png
new file mode 100644
index 0000000..73e5025
Binary files /dev/null and b/src/assets/images/login/main-title.png differ
diff --git a/src/assets/images/login/图层2.png b/src/assets/images/login/图层2.png
new file mode 100644
index 0000000..d212ec8
Binary files /dev/null and b/src/assets/images/login/图层2.png differ
diff --git a/src/assets/images/login/登录.jpg b/src/assets/images/login/登录.jpg
new file mode 100644
index 0000000..afb2088
Binary files /dev/null and b/src/assets/images/login/登录.jpg differ
diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png
new file mode 100644
index 0000000..90615b0
Binary files /dev/null and b/src/assets/images/logo.png differ
diff --git a/src/assets/images/nav-logo.png b/src/assets/images/nav-logo.png
new file mode 100644
index 0000000..f8090f5
Binary files /dev/null and b/src/assets/images/nav-logo.png differ
diff --git a/src/assets/images/p-tree/down-fill.png b/src/assets/images/p-tree/down-fill.png
new file mode 100644
index 0000000..c9faefb
Binary files /dev/null and b/src/assets/images/p-tree/down-fill.png differ
diff --git a/src/assets/images/p-tree/icon-add-active.png b/src/assets/images/p-tree/icon-add-active.png
new file mode 100644
index 0000000..ab2c927
Binary files /dev/null and b/src/assets/images/p-tree/icon-add-active.png differ
diff --git a/src/assets/images/p-tree/icon-add.png b/src/assets/images/p-tree/icon-add.png
new file mode 100644
index 0000000..fa1afc7
Binary files /dev/null and b/src/assets/images/p-tree/icon-add.png differ
diff --git a/src/assets/images/p-tree/icon-delete-active.png b/src/assets/images/p-tree/icon-delete-active.png
new file mode 100644
index 0000000..350bd7d
Binary files /dev/null and b/src/assets/images/p-tree/icon-delete-active.png differ
diff --git a/src/assets/images/p-tree/icon-delete.png b/src/assets/images/p-tree/icon-delete.png
new file mode 100644
index 0000000..6aaa364
Binary files /dev/null and b/src/assets/images/p-tree/icon-delete.png differ
diff --git a/src/assets/images/p-tree/icon-download-active.png b/src/assets/images/p-tree/icon-download-active.png
new file mode 100644
index 0000000..906073f
Binary files /dev/null and b/src/assets/images/p-tree/icon-download-active.png differ
diff --git a/src/assets/images/p-tree/icon-download.png b/src/assets/images/p-tree/icon-download.png
new file mode 100644
index 0000000..0340103
Binary files /dev/null and b/src/assets/images/p-tree/icon-download.png differ
diff --git a/src/assets/images/p-tree/icon-edit-active.png b/src/assets/images/p-tree/icon-edit-active.png
new file mode 100644
index 0000000..a68e93a
Binary files /dev/null and b/src/assets/images/p-tree/icon-edit-active.png differ
diff --git a/src/assets/images/p-tree/icon-edit.png b/src/assets/images/p-tree/icon-edit.png
new file mode 100644
index 0000000..f765400
Binary files /dev/null and b/src/assets/images/p-tree/icon-edit.png differ
diff --git a/src/assets/images/p-tree/icon-evaluate-active.png b/src/assets/images/p-tree/icon-evaluate-active.png
new file mode 100644
index 0000000..ce94bde
Binary files /dev/null and b/src/assets/images/p-tree/icon-evaluate-active.png differ
diff --git a/src/assets/images/p-tree/icon-evaluate.png b/src/assets/images/p-tree/icon-evaluate.png
new file mode 100644
index 0000000..0fbf2fc
Binary files /dev/null and b/src/assets/images/p-tree/icon-evaluate.png differ
diff --git a/src/assets/images/p-tree/icon-formmodel.png b/src/assets/images/p-tree/icon-formmodel.png
new file mode 100644
index 0000000..39e4b4e
Binary files /dev/null and b/src/assets/images/p-tree/icon-formmodel.png differ
diff --git a/src/assets/images/p-tree/icon-result.png b/src/assets/images/p-tree/icon-result.png
new file mode 100644
index 0000000..a1a686e
Binary files /dev/null and b/src/assets/images/p-tree/icon-result.png differ
diff --git a/src/assets/images/p-tree/icon-tree-level-0.png b/src/assets/images/p-tree/icon-tree-level-0.png
new file mode 100644
index 0000000..366bd38
Binary files /dev/null and b/src/assets/images/p-tree/icon-tree-level-0.png differ
diff --git a/src/assets/images/p-tree/icon-tree-level-1.png b/src/assets/images/p-tree/icon-tree-level-1.png
new file mode 100644
index 0000000..0733d9d
Binary files /dev/null and b/src/assets/images/p-tree/icon-tree-level-1.png differ
diff --git a/src/assets/images/p-tree/icon-tree-level-2.png b/src/assets/images/p-tree/icon-tree-level-2.png
new file mode 100644
index 0000000..3a3deea
Binary files /dev/null and b/src/assets/images/p-tree/icon-tree-level-2.png differ
diff --git a/src/assets/images/p-tree/icon-tree-level-3-open.png b/src/assets/images/p-tree/icon-tree-level-3-open.png
new file mode 100644
index 0000000..7adefa8
Binary files /dev/null and b/src/assets/images/p-tree/icon-tree-level-3-open.png differ
diff --git a/src/assets/images/p-tree/icon-tree-level-3.png b/src/assets/images/p-tree/icon-tree-level-3.png
new file mode 100644
index 0000000..f99351e
Binary files /dev/null and b/src/assets/images/p-tree/icon-tree-level-3.png differ
diff --git a/src/assets/images/p-tree/icon-tree-level-4.png b/src/assets/images/p-tree/icon-tree-level-4.png
new file mode 100644
index 0000000..b1a9f70
Binary files /dev/null and b/src/assets/images/p-tree/icon-tree-level-4.png differ
diff --git a/src/assets/images/p-tree/icon-tree.png b/src/assets/images/p-tree/icon-tree.png
new file mode 100644
index 0000000..e3c14c6
Binary files /dev/null and b/src/assets/images/p-tree/icon-tree.png differ
diff --git a/src/assets/images/p-tree/icon-upload-active.png b/src/assets/images/p-tree/icon-upload-active.png
new file mode 100644
index 0000000..d26da50
Binary files /dev/null and b/src/assets/images/p-tree/icon-upload-active.png differ
diff --git a/src/assets/images/p-tree/icon-upload.png b/src/assets/images/p-tree/icon-upload.png
new file mode 100644
index 0000000..3508116
Binary files /dev/null and b/src/assets/images/p-tree/icon-upload.png differ
diff --git a/src/assets/images/p-tree/right-fill.png b/src/assets/images/p-tree/right-fill.png
new file mode 100644
index 0000000..a7d4963
Binary files /dev/null and b/src/assets/images/p-tree/right-fill.png differ
diff --git a/src/assets/images/par/gu(fang).png b/src/assets/images/par/gu(fang).png
new file mode 100644
index 0000000..21f2406
Binary files /dev/null and b/src/assets/images/par/gu(fang).png differ
diff --git a/src/assets/images/par/gu(yuan).png b/src/assets/images/par/gu(yuan).png
new file mode 100644
index 0000000..edd08b4
Binary files /dev/null and b/src/assets/images/par/gu(yuan).png differ
diff --git a/src/assets/images/par/j_gu.png b/src/assets/images/par/j_gu.png
new file mode 100644
index 0000000..8fc6dae
Binary files /dev/null and b/src/assets/images/par/j_gu.png differ
diff --git a/src/assets/images/par/j_maan.png b/src/assets/images/par/j_maan.png
new file mode 100644
index 0000000..9afe2f1
Binary files /dev/null and b/src/assets/images/par/j_maan.png differ
diff --git a/src/assets/images/par/j_yuanzhu.png b/src/assets/images/par/j_yuanzhu.png
new file mode 100644
index 0000000..1d875d3
Binary files /dev/null and b/src/assets/images/par/j_yuanzhu.png differ
diff --git a/src/assets/images/par/j_zhui.png b/src/assets/images/par/j_zhui.png
new file mode 100644
index 0000000..9c86787
Binary files /dev/null and b/src/assets/images/par/j_zhui.png differ
diff --git a/src/assets/images/par/j_zhui2.png b/src/assets/images/par/j_zhui2.png
new file mode 100644
index 0000000..f6e15e0
Binary files /dev/null and b/src/assets/images/par/j_zhui2.png differ
diff --git a/src/assets/images/par/maan(fang).png b/src/assets/images/par/maan(fang).png
new file mode 100644
index 0000000..5334073
Binary files /dev/null and b/src/assets/images/par/maan(fang).png differ
diff --git a/src/assets/images/par/maan(no).png b/src/assets/images/par/maan(no).png
new file mode 100644
index 0000000..c8521f7
Binary files /dev/null and b/src/assets/images/par/maan(no).png differ
diff --git a/src/assets/images/par/maan(yuan).png b/src/assets/images/par/maan(yuan).png
new file mode 100644
index 0000000..010e76a
Binary files /dev/null and b/src/assets/images/par/maan(yuan).png differ
diff --git a/src/assets/images/par/youzhui.png b/src/assets/images/par/youzhui.png
new file mode 100644
index 0000000..97259c8
Binary files /dev/null and b/src/assets/images/par/youzhui.png differ
diff --git a/src/assets/images/par/yuanzhu(fang).png b/src/assets/images/par/yuanzhu(fang).png
new file mode 100644
index 0000000..ef1f931
Binary files /dev/null and b/src/assets/images/par/yuanzhu(fang).png differ
diff --git a/src/assets/images/par/yuanzhu(yuan).png b/src/assets/images/par/yuanzhu(yuan).png
new file mode 100644
index 0000000..cc843a0
Binary files /dev/null and b/src/assets/images/par/yuanzhu(yuan).png differ
diff --git a/src/assets/images/par/zhui(fang).png b/src/assets/images/par/zhui(fang).png
new file mode 100644
index 0000000..562ace7
Binary files /dev/null and b/src/assets/images/par/zhui(fang).png differ
diff --git a/src/assets/images/par/zhui(yuan).png b/src/assets/images/par/zhui(yuan).png
new file mode 100644
index 0000000..15053a2
Binary files /dev/null and b/src/assets/images/par/zhui(yuan).png differ
diff --git a/src/assets/images/par/zuozhui.png b/src/assets/images/par/zuozhui.png
new file mode 100644
index 0000000..1de8fd3
Binary files /dev/null and b/src/assets/images/par/zuozhui.png differ
diff --git a/src/assets/images/par/两端锥形中间马鞍形.png b/src/assets/images/par/两端锥形中间马鞍形.png
new file mode 100644
index 0000000..28fd671
Binary files /dev/null and b/src/assets/images/par/两端锥形中间马鞍形.png differ
diff --git a/src/assets/images/par2/bj.jpg b/src/assets/images/par2/bj.jpg
new file mode 100644
index 0000000..2f5142a
Binary files /dev/null and b/src/assets/images/par2/bj.jpg differ
diff --git a/src/assets/images/par2/gu1.png b/src/assets/images/par2/gu1.png
new file mode 100644
index 0000000..60ac30c
Binary files /dev/null and b/src/assets/images/par2/gu1.png differ
diff --git a/src/assets/images/par2/gu2.png b/src/assets/images/par2/gu2.png
new file mode 100644
index 0000000..7ab4e2c
Binary files /dev/null and b/src/assets/images/par2/gu2.png differ
diff --git a/src/assets/images/par2/gu3.png b/src/assets/images/par2/gu3.png
new file mode 100644
index 0000000..0af607a
Binary files /dev/null and b/src/assets/images/par2/gu3.png differ
diff --git a/src/assets/images/par2/maan1.png b/src/assets/images/par2/maan1.png
new file mode 100644
index 0000000..0d35690
Binary files /dev/null and b/src/assets/images/par2/maan1.png differ
diff --git a/src/assets/images/par2/maan2.png b/src/assets/images/par2/maan2.png
new file mode 100644
index 0000000..a8119f7
Binary files /dev/null and b/src/assets/images/par2/maan2.png differ
diff --git a/src/assets/images/par2/maan3.png b/src/assets/images/par2/maan3.png
new file mode 100644
index 0000000..d71d051
Binary files /dev/null and b/src/assets/images/par2/maan3.png differ
diff --git a/src/assets/images/par2/yuanzhu1.png b/src/assets/images/par2/yuanzhu1.png
new file mode 100644
index 0000000..90ad8f7
Binary files /dev/null and b/src/assets/images/par2/yuanzhu1.png differ
diff --git a/src/assets/images/par2/yuanzhu2.png b/src/assets/images/par2/yuanzhu2.png
new file mode 100644
index 0000000..53f3d88
Binary files /dev/null and b/src/assets/images/par2/yuanzhu2.png differ
diff --git a/src/assets/images/par2/yuanzhu3.png b/src/assets/images/par2/yuanzhu3.png
new file mode 100644
index 0000000..4b3f806
Binary files /dev/null and b/src/assets/images/par2/yuanzhu3.png differ
diff --git a/src/assets/images/par2/zhui1.png b/src/assets/images/par2/zhui1.png
new file mode 100644
index 0000000..d195461
Binary files /dev/null and b/src/assets/images/par2/zhui1.png differ
diff --git a/src/assets/images/par2/zhui2.png b/src/assets/images/par2/zhui2.png
new file mode 100644
index 0000000..166198d
Binary files /dev/null and b/src/assets/images/par2/zhui2.png differ
diff --git a/src/assets/images/par2/zhui3.png b/src/assets/images/par2/zhui3.png
new file mode 100644
index 0000000..1679252
Binary files /dev/null and b/src/assets/images/par2/zhui3.png differ
diff --git a/src/assets/images/par2/zhui4.png b/src/assets/images/par2/zhui4.png
new file mode 100644
index 0000000..dbdaf4f
Binary files /dev/null and b/src/assets/images/par2/zhui4.png differ
diff --git a/src/assets/images/par2/zhui5.png b/src/assets/images/par2/zhui5.png
new file mode 100644
index 0000000..cdf9bc5
Binary files /dev/null and b/src/assets/images/par2/zhui5.png differ
diff --git a/src/assets/images/par2/zhui6.png b/src/assets/images/par2/zhui6.png
new file mode 100644
index 0000000..8ab7d17
Binary files /dev/null and b/src/assets/images/par2/zhui6.png differ
diff --git a/src/assets/images/plan/1.png b/src/assets/images/plan/1.png
new file mode 100644
index 0000000..8a2b96e
Binary files /dev/null and b/src/assets/images/plan/1.png differ
diff --git a/src/assets/images/plan/2.png b/src/assets/images/plan/2.png
new file mode 100644
index 0000000..1a11173
Binary files /dev/null and b/src/assets/images/plan/2.png differ
diff --git a/src/assets/images/plan/3.png b/src/assets/images/plan/3.png
new file mode 100644
index 0000000..ca4096c
Binary files /dev/null and b/src/assets/images/plan/3.png differ
diff --git a/src/assets/images/plan/4.png b/src/assets/images/plan/4.png
new file mode 100644
index 0000000..c446bd2
Binary files /dev/null and b/src/assets/images/plan/4.png differ
diff --git a/src/assets/images/plan/5.png b/src/assets/images/plan/5.png
new file mode 100644
index 0000000..4095c91
Binary files /dev/null and b/src/assets/images/plan/5.png differ
diff --git a/src/assets/images/plane/avatar.png b/src/assets/images/plane/avatar.png
new file mode 100644
index 0000000..751c167
Binary files /dev/null and b/src/assets/images/plane/avatar.png differ
diff --git a/src/assets/images/plane/close-red.png b/src/assets/images/plane/close-red.png
new file mode 100644
index 0000000..d6ebf3b
Binary files /dev/null and b/src/assets/images/plane/close-red.png differ
diff --git a/src/assets/images/plane/close.png b/src/assets/images/plane/close.png
new file mode 100644
index 0000000..be69d5e
Binary files /dev/null and b/src/assets/images/plane/close.png differ
diff --git a/src/assets/images/plane/damage-distribution-display.png b/src/assets/images/plane/damage-distribution-display.png
new file mode 100644
index 0000000..829f7a3
Binary files /dev/null and b/src/assets/images/plane/damage-distribution-display.png differ
diff --git a/src/assets/images/plane/fc-1.png b/src/assets/images/plane/fc-1.png
new file mode 100644
index 0000000..90143dd
Binary files /dev/null and b/src/assets/images/plane/fc-1.png differ
diff --git a/src/assets/images/plane/folder-close.png b/src/assets/images/plane/folder-close.png
new file mode 100644
index 0000000..bc227a1
Binary files /dev/null and b/src/assets/images/plane/folder-close.png differ
diff --git a/src/assets/images/plane/folder-open.png b/src/assets/images/plane/folder-open.png
new file mode 100644
index 0000000..551e6b7
Binary files /dev/null and b/src/assets/images/plane/folder-open.png differ
diff --git a/src/assets/images/plane/icon-dropdown-active.png b/src/assets/images/plane/icon-dropdown-active.png
new file mode 100644
index 0000000..a9511c5
Binary files /dev/null and b/src/assets/images/plane/icon-dropdown-active.png differ
diff --git a/src/assets/images/plane/icon-dropdown.png b/src/assets/images/plane/icon-dropdown.png
new file mode 100644
index 0000000..4080be7
Binary files /dev/null and b/src/assets/images/plane/icon-dropdown.png differ
diff --git a/src/assets/images/plane/icon-pause-disabled.png b/src/assets/images/plane/icon-pause-disabled.png
new file mode 100644
index 0000000..08f2944
Binary files /dev/null and b/src/assets/images/plane/icon-pause-disabled.png differ
diff --git a/src/assets/images/plane/icon-pause.png b/src/assets/images/plane/icon-pause.png
new file mode 100644
index 0000000..790f3c1
Binary files /dev/null and b/src/assets/images/plane/icon-pause.png differ
diff --git a/src/assets/images/plane/icon-start-disabled.png b/src/assets/images/plane/icon-start-disabled.png
new file mode 100644
index 0000000..f320754
Binary files /dev/null and b/src/assets/images/plane/icon-start-disabled.png differ
diff --git a/src/assets/images/plane/icon-start.png b/src/assets/images/plane/icon-start.png
new file mode 100644
index 0000000..a8b03bb
Binary files /dev/null and b/src/assets/images/plane/icon-start.png differ
diff --git a/src/assets/images/plane/j-10.png b/src/assets/images/plane/j-10.png
new file mode 100644
index 0000000..1dfde17
Binary files /dev/null and b/src/assets/images/plane/j-10.png differ
diff --git a/src/assets/images/plane/j-20.png b/src/assets/images/plane/j-20.png
new file mode 100644
index 0000000..abe2e1b
Binary files /dev/null and b/src/assets/images/plane/j-20.png differ
diff --git a/src/assets/images/plane/j-7.png b/src/assets/images/plane/j-7.png
new file mode 100644
index 0000000..247f6fb
Binary files /dev/null and b/src/assets/images/plane/j-7.png differ
diff --git a/src/assets/images/plane/killing-element-power-field-bg.png b/src/assets/images/plane/killing-element-power-field-bg.png
new file mode 100644
index 0000000..a1a0a14
Binary files /dev/null and b/src/assets/images/plane/killing-element-power-field-bg.png differ
diff --git a/src/assets/images/plane/killing-element-power-field.gif b/src/assets/images/plane/killing-element-power-field.gif
new file mode 100644
index 0000000..c6ceaff
Binary files /dev/null and b/src/assets/images/plane/killing-element-power-field.gif differ
diff --git a/src/assets/images/plane/killing-element-power-field.png b/src/assets/images/plane/killing-element-power-field.png
new file mode 100644
index 0000000..5f02176
Binary files /dev/null and b/src/assets/images/plane/killing-element-power-field.png differ
diff --git a/src/assets/images/plane/logo.png b/src/assets/images/plane/logo.png
new file mode 100644
index 0000000..d212ec8
Binary files /dev/null and b/src/assets/images/plane/logo.png differ
diff --git a/src/assets/images/plane/missile-red.png b/src/assets/images/plane/missile-red.png
new file mode 100644
index 0000000..7f61d92
Binary files /dev/null and b/src/assets/images/plane/missile-red.png differ
diff --git a/src/assets/images/plane/pl-10.png b/src/assets/images/plane/pl-10.png
new file mode 100644
index 0000000..4afc6ae
Binary files /dev/null and b/src/assets/images/plane/pl-10.png differ
diff --git a/src/assets/images/plane/pl-11.png b/src/assets/images/plane/pl-11.png
new file mode 100644
index 0000000..a8252ac
Binary files /dev/null and b/src/assets/images/plane/pl-11.png differ
diff --git a/src/assets/images/plane/pl-12.png b/src/assets/images/plane/pl-12.png
new file mode 100644
index 0000000..b26fdcd
Binary files /dev/null and b/src/assets/images/plane/pl-12.png differ
diff --git a/src/assets/images/plane/pl-13.png b/src/assets/images/plane/pl-13.png
new file mode 100644
index 0000000..f2fb5b5
Binary files /dev/null and b/src/assets/images/plane/pl-13.png differ
diff --git a/src/assets/images/plane/plane-red.png b/src/assets/images/plane/plane-red.png
new file mode 100644
index 0000000..2a8deff
Binary files /dev/null and b/src/assets/images/plane/plane-red.png differ
diff --git a/src/assets/images/plane/plane-scan.png b/src/assets/images/plane/plane-scan.png
new file mode 100644
index 0000000..b39dd63
Binary files /dev/null and b/src/assets/images/plane/plane-scan.png differ
diff --git a/src/assets/images/plane/raycaster.gif b/src/assets/images/plane/raycaster.gif
new file mode 100644
index 0000000..dfcedbd
Binary files /dev/null and b/src/assets/images/plane/raycaster.gif differ
diff --git a/src/assets/images/plane/raycaster.png b/src/assets/images/plane/raycaster.png
new file mode 100644
index 0000000..7d49b0c
Binary files /dev/null and b/src/assets/images/plane/raycaster.png differ
diff --git a/src/assets/images/plane/real-img-j20.png b/src/assets/images/plane/real-img-j20.png
new file mode 100644
index 0000000..bb4e377
Binary files /dev/null and b/src/assets/images/plane/real-img-j20.png differ
diff --git a/src/assets/images/plane/simulation-destroy.png b/src/assets/images/plane/simulation-destroy.png
new file mode 100644
index 0000000..9c92647
Binary files /dev/null and b/src/assets/images/plane/simulation-destroy.png differ
diff --git a/src/assets/images/plane/simulation-light.png b/src/assets/images/plane/simulation-light.png
new file mode 100644
index 0000000..5866504
Binary files /dev/null and b/src/assets/images/plane/simulation-light.png differ
diff --git a/src/assets/images/plane/simulation-plane.png b/src/assets/images/plane/simulation-plane.png
new file mode 100644
index 0000000..14c27d8
Binary files /dev/null and b/src/assets/images/plane/simulation-plane.png differ
diff --git a/src/assets/images/plane/simulation-sun.png b/src/assets/images/plane/simulation-sun.png
new file mode 100644
index 0000000..44563c3
Binary files /dev/null and b/src/assets/images/plane/simulation-sun.png differ
diff --git a/src/assets/images/plane/triangle-active.png b/src/assets/images/plane/triangle-active.png
new file mode 100644
index 0000000..614f64c
Binary files /dev/null and b/src/assets/images/plane/triangle-active.png differ
diff --git a/src/assets/images/plane/triangle.png b/src/assets/images/plane/triangle.png
new file mode 100644
index 0000000..c19e087
Binary files /dev/null and b/src/assets/images/plane/triangle.png differ
diff --git a/src/assets/images/plane/tuceng135.png b/src/assets/images/plane/tuceng135.png
new file mode 100644
index 0000000..49ca36a
Binary files /dev/null and b/src/assets/images/plane/tuceng135.png differ
diff --git a/src/assets/images/plane/tuceng2.png b/src/assets/images/plane/tuceng2.png
new file mode 100644
index 0000000..c711bb3
Binary files /dev/null and b/src/assets/images/plane/tuceng2.png differ
diff --git a/src/assets/images/plane/tuceng4.png b/src/assets/images/plane/tuceng4.png
new file mode 100644
index 0000000..bb4e377
Binary files /dev/null and b/src/assets/images/plane/tuceng4.png differ
diff --git a/src/assets/images/plane/tuceng5.png b/src/assets/images/plane/tuceng5.png
new file mode 100644
index 0000000..c099b72
Binary files /dev/null and b/src/assets/images/plane/tuceng5.png differ
diff --git a/src/assets/images/plane/tuceng6.png b/src/assets/images/plane/tuceng6.png
new file mode 100644
index 0000000..420e6b0
Binary files /dev/null and b/src/assets/images/plane/tuceng6.png differ
diff --git a/src/assets/images/profile.jpg b/src/assets/images/profile.jpg
new file mode 100644
index 0000000..f4fde57
Binary files /dev/null and b/src/assets/images/profile.jpg differ
diff --git a/src/assets/images/tab-active.svg b/src/assets/images/tab-active.svg
new file mode 100644
index 0000000..290ceba
--- /dev/null
+++ b/src/assets/images/tab-active.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/src/assets/images/tab.svg b/src/assets/images/tab.svg
new file mode 100644
index 0000000..c26c19b
--- /dev/null
+++ b/src/assets/images/tab.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/src/assets/images/threejs/back.jpg b/src/assets/images/threejs/back.jpg
new file mode 100644
index 0000000..e0057f3
Binary files /dev/null and b/src/assets/images/threejs/back.jpg differ
diff --git a/src/assets/images/threejs/boom.png b/src/assets/images/threejs/boom.png
new file mode 100644
index 0000000..8b8df16
Binary files /dev/null and b/src/assets/images/threejs/boom.png differ
diff --git a/src/assets/images/threejs/down.jpg b/src/assets/images/threejs/down.jpg
new file mode 100644
index 0000000..c025b60
Binary files /dev/null and b/src/assets/images/threejs/down.jpg differ
diff --git a/src/assets/images/threejs/front.jpg b/src/assets/images/threejs/front.jpg
new file mode 100644
index 0000000..bd1d20b
Binary files /dev/null and b/src/assets/images/threejs/front.jpg differ
diff --git a/src/assets/images/threejs/left.jpg b/src/assets/images/threejs/left.jpg
new file mode 100644
index 0000000..1d7e3c4
Binary files /dev/null and b/src/assets/images/threejs/left.jpg differ
diff --git a/src/assets/images/threejs/right.jpg b/src/assets/images/threejs/right.jpg
new file mode 100644
index 0000000..356a09e
Binary files /dev/null and b/src/assets/images/threejs/right.jpg differ
diff --git a/src/assets/images/threejs/top.jpg b/src/assets/images/threejs/top.jpg
new file mode 100644
index 0000000..76c3dab
Binary files /dev/null and b/src/assets/images/threejs/top.jpg differ
diff --git a/src/assets/images/u32.svg b/src/assets/images/u32.svg
new file mode 100644
index 0000000..d94a7ea
--- /dev/null
+++ b/src/assets/images/u32.svg
@@ -0,0 +1,7 @@
+
+
\ No newline at end of file
diff --git a/src/assets/images/u3909.png b/src/assets/images/u3909.png
new file mode 100644
index 0000000..c04f694
Binary files /dev/null and b/src/assets/images/u3909.png differ
diff --git a/src/assets/logo/logo.png b/src/assets/logo/logo.png
new file mode 100644
index 0000000..3f919d8
Binary files /dev/null and b/src/assets/logo/logo.png differ
diff --git a/src/assets/styles/btn.scss b/src/assets/styles/btn.scss
new file mode 100644
index 0000000..e6ba1a8
--- /dev/null
+++ b/src/assets/styles/btn.scss
@@ -0,0 +1,99 @@
+@import './variables.scss';
+
+@mixin colorBtn($color) {
+ background: $color;
+
+ &:hover {
+ color: $color;
+
+ &:before,
+ &:after {
+ background: $color;
+ }
+ }
+}
+
+.blue-btn {
+ @include colorBtn($blue)
+}
+
+.light-blue-btn {
+ @include colorBtn($light-blue)
+}
+
+.red-btn {
+ @include colorBtn($red)
+}
+
+.pink-btn {
+ @include colorBtn($pink)
+}
+
+.green-btn {
+ @include colorBtn($green)
+}
+
+.tiffany-btn {
+ @include colorBtn($tiffany)
+}
+
+.yellow-btn {
+ @include colorBtn($yellow)
+}
+
+.pan-btn {
+ font-size: 14px;
+ color: #fff;
+ padding: 14px 36px;
+ border-radius: 8px;
+ border: none;
+ outline: none;
+ transition: 600ms ease all;
+ position: relative;
+ display: inline-block;
+
+ &:hover {
+ background: #fff;
+
+ &:before,
+ &:after {
+ width: 100%;
+ transition: 600ms ease all;
+ }
+ }
+
+ &:before,
+ &:after {
+ content: '';
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 2px;
+ width: 0;
+ transition: 400ms ease all;
+ }
+
+ &::after {
+ right: inherit;
+ top: inherit;
+ left: 0;
+ bottom: 0;
+ }
+}
+
+.custom-button {
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ color: #fff;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: 0;
+ margin: 0;
+ padding: 10px 15px;
+ font-size: 14px;
+ border-radius: 4px;
+}
diff --git a/src/assets/styles/element-ui.scss b/src/assets/styles/element-ui.scss
new file mode 100644
index 0000000..52671af
--- /dev/null
+++ b/src/assets/styles/element-ui.scss
@@ -0,0 +1,141 @@
+// cover some element-ui styles
+
+.el-breadcrumb__inner,
+.el-breadcrumb__inner a {
+ font-weight: 400 !important;
+}
+
+.el-upload {
+ input[type="file"] {
+ display: none !important;
+ }
+}
+
+.el-upload__input {
+ display: none;
+}
+
+.cell {
+ .el-tag {
+ margin-right: 0px;
+ }
+}
+
+.small-padding {
+ .cell {
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+}
+
+.fixed-width {
+ .el-button--mini {
+ padding: 7px 10px;
+ width: 60px;
+ }
+}
+
+.status-col {
+ .cell {
+ padding: 0 10px;
+ text-align: center;
+
+ .el-tag {
+ margin-right: 0px;
+ }
+ }
+}
+
+// to fixed https://github.com/ElemeFE/element/issues/2461
+.el-dialog {
+ transform: none;
+ left: 0;
+ position: relative;
+ margin: 0 auto;
+ border-radius: 4px;
+
+ &__title {
+ color: #1f76cb;
+ font-size: 14px;
+ font-weight: bold;
+ }
+}
+
+// refine element ui upload
+.upload-container {
+ .el-upload {
+ width: 100%;
+
+ .el-upload-dragger {
+ width: 100%;
+ height: 200px;
+ }
+ }
+}
+
+// dropdown
+.el-dropdown-menu {
+ a {
+ display: block;
+ }
+}
+
+// fix date-picker ui bug in filter-item
+.el-range-editor.el-input__inner {
+ display: inline-flex !important;
+}
+
+// to fix el-date-picker css style
+.el-range-separator {
+ box-sizing: content-box;
+}
+
+.el-menu--collapse
+ > div
+ > .el-submenu
+ > .el-submenu__title
+ .el-submenu__icon-arrow {
+ display: none;
+}
+
+.el-button {
+ height: 34px;
+ line-height: 34px;
+ font-size: 16px;
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+
+.el-form {
+ &-item {
+ &__label {
+ flex-shrink: 0;
+ font-size: 14px;
+ color: #1d2129;
+ font-weight: normal;
+ line-height: 34px !important;
+ }
+ }
+}
+
+.el-form-item--medium .el-form-item__content {
+ line-height: 34px;
+}
+
+.el-input-number {
+ width: auto;
+ line-height: 32px;
+
+ &__decrease,
+ &__increase {
+ width: 40px;
+ background-color: #fff;
+ }
+}
+
+.el-tabs {
+ &__active-bar {
+ transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1),
+ width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
+ }
+}
diff --git a/src/assets/styles/element-variables.scss b/src/assets/styles/element-variables.scss
new file mode 100644
index 0000000..817cfbe
--- /dev/null
+++ b/src/assets/styles/element-variables.scss
@@ -0,0 +1,38 @@
+/**
+* I think element-ui's default theme color is too light for long-term use.
+* So I modified the default color and you can modify it to your liking.
+**/
+
+/* theme color */
+$--color-primary: #1f76cb;
+$--color-success: #13ce66;
+$--color-warning: #ffba00;
+$--color-danger: #ff4949;
+// $--color-info: #1E1E1E;
+
+$--button-font-weight: 400;
+
+// $--color-text-regular: #1f2d3d;
+
+$--border-color-light: #dfe4ed;
+$--border-color-lighter: #e6ebf5;
+
+$--table-border: 1px solid #ebeef3;
+
+$--input-medium-height: 34px;
+$--input-border-radius: 0;
+
+$--form-label-font-size: 14px;
+
+$--select-input-color: #606266;
+
+/* icon font path, required */
+$--font-path: "~element-ui/lib/theme-chalk/fonts";
+
+@import "~element-ui/packages/theme-chalk/src/index";
+
+// the :export directive is the magic sauce for webpack
+// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
+:export {
+ theme: $--color-primary;
+}
diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss
new file mode 100644
index 0000000..afaab72
--- /dev/null
+++ b/src/assets/styles/index.scss
@@ -0,0 +1,307 @@
+@import "./variables.scss";
+@import "./mixin.scss";
+@import "./transition.scss";
+@import "./element-ui.scss";
+@import "./sidebar.scss";
+@import "./btn.scss";
+
+body {
+ height: 100%;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ text-rendering: optimizeLegibility;
+ font-family: siyuan-reg, Microsoft YaHei, Arial, sans-serif;
+}
+
+label {
+ font-weight: 700;
+}
+
+html {
+ height: 100%;
+ box-sizing: border-box;
+}
+
+#app {
+ height: 100%;
+}
+
+*,
+*:before,
+*:after {
+ box-sizing: inherit;
+}
+
+.no-padding {
+ padding: 0px !important;
+}
+
+.padding-content {
+ padding: 4px 0;
+}
+
+a:focus,
+a:active {
+ outline: none;
+}
+
+a,
+a:focus,
+a:hover {
+ cursor: pointer;
+ color: inherit;
+ text-decoration: none;
+}
+
+div:focus {
+ outline: none;
+}
+
+.fr {
+ float: right;
+}
+
+.fl {
+ float: left;
+}
+
+.pr-5 {
+ padding-right: 5px;
+}
+
+.pl-5 {
+ padding-left: 5px;
+}
+
+.block {
+ display: block;
+}
+
+.pointer {
+ cursor: pointer;
+}
+
+.inlineBlock {
+ display: block;
+}
+
+.clearfix {
+ &:after {
+ visibility: hidden;
+ display: block;
+ font-size: 0;
+ content: " ";
+ clear: both;
+ height: 0;
+ }
+}
+
+aside {
+ background: #eef1f6;
+ padding: 8px 24px;
+ margin-bottom: 20px;
+ border-radius: 2px;
+ display: block;
+ line-height: 32px;
+ font-size: 16px;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
+ Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
+ color: #2c3e50;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ a {
+ color: #337ab7;
+ cursor: pointer;
+
+ &:hover {
+ color: rgb(32, 160, 255);
+ }
+ }
+}
+
+//main-container全局样式
+.app-container {
+ padding: 20px;
+ background: #fff;
+ height: 100%;
+}
+
+.components-container {
+ margin: 30px 50px;
+ position: relative;
+}
+
+.pagination-container {
+ margin-top: 30px;
+}
+
+.text-center {
+ text-align: center;
+}
+
+.sub-navbar {
+ height: 50px;
+ line-height: 50px;
+ position: relative;
+ width: 100%;
+ text-align: right;
+ padding-right: 20px;
+ transition: 600ms ease position;
+ background: linear-gradient(
+ 90deg,
+ rgba(32, 182, 249, 1) 0%,
+ rgba(32, 182, 249, 1) 0%,
+ rgba(33, 120, 241, 1) 100%,
+ rgba(33, 120, 241, 1) 100%
+ );
+
+ .subtitle {
+ font-size: 20px;
+ color: #fff;
+ }
+
+ &.draft {
+ background: #d0d0d0;
+ }
+
+ &.deleted {
+ background: #d0d0d0;
+ }
+}
+
+.link-type,
+.link-type:focus {
+ color: #337ab7;
+ cursor: pointer;
+
+ &:hover {
+ color: rgb(32, 160, 255);
+ }
+}
+
+.filter-container {
+ padding-bottom: 10px;
+
+ .filter-item {
+ display: inline-block;
+ vertical-align: middle;
+ margin-bottom: 10px;
+ }
+}
+
+.h-space {
+ display: flex;
+}
+
+.el-dialog__header {
+ border-bottom: 1px solid #ddd;
+ padding-top: 12px;
+}
+
+.el-dialog__footer {
+ border-top: 1px solid #ddd;
+ padding-bottom: 12px;
+}
+
+.btn-text-danger {
+ color: $red !important;
+}
+
+:root {
+ --variant-panel-background: #fff;
+}
+.el-table__row.hover-row td {
+ background-color: #fbfbfb !important;
+}
+.el-menu.el-menu--horizontal {
+ border-bottom: 1px solid #1f76cb !important;
+}
+
+.mt-10 {
+ margin-top: 10px;
+}
+
+.mt-20 {
+ margin-top: 20px;
+}
+
+@font-face {
+ font-family: 'siyuan-nor';
+ src: url('../font/SourceHanSansCN-Normal.otf');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'siyuan-med';
+ src: url('../font/SourceHanSansCN-Medium.otf');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'siyuan-reg';
+ src: url('../font/SourceHanSansCN-Regular.otf');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'puhui-bold';
+ src: url('../font/Alibaba-PuHuiTi-Bold.otf');
+ font-weight: normal;
+ font-style: normal;
+}
+
+.siyuan-nor {
+ font-family: siyuan-nor;
+}
+
+.siyuan-med {
+ font-family: siyuan-med;
+}
+
+.siyuan-reg {
+ font-family: siyuan-reg;
+}
+
+.puhui-bold {
+ font-family: puhui-bold;
+}
+
+.el-collapse-item__header {
+ font-family: 'siyuan-reg';
+ font-size: 14px;
+ letter-spacing: 0px;
+ color: #1f76cb;
+}
+.ellipsis {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+.el-dialog__header {
+ background-color: #2076cb;
+}
+
+.el-dialog__title {
+ font-family: MicrosoftYaHei;
+ font-size: 14px;
+ font-weight: bold;
+ letter-spacing: 1px;
+ color: #ffffff;
+}
+
+.el-dialog__body {
+ padding: 20px;
+}
+
+.el-dialog__headerbtn .el-dialog__close {
+ color: #ffffff;
+}
+
+.el-table .custom-table-header th {
+ background-color: #ECF4FF !important;
+}
diff --git a/src/assets/styles/mixin.scss b/src/assets/styles/mixin.scss
new file mode 100644
index 0000000..06fa061
--- /dev/null
+++ b/src/assets/styles/mixin.scss
@@ -0,0 +1,66 @@
+@mixin clearfix {
+ &:after {
+ content: "";
+ display: table;
+ clear: both;
+ }
+}
+
+@mixin scrollBar {
+ &::-webkit-scrollbar-track-piece {
+ background: #d3dce6;
+ }
+
+ &::-webkit-scrollbar {
+ width: 6px;
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background: #99a9bf;
+ border-radius: 20px;
+ }
+}
+
+@mixin relative {
+ position: relative;
+ width: 100%;
+ height: 100%;
+}
+
+@mixin pct($pct) {
+ width: #{$pct};
+ position: relative;
+ margin: 0 auto;
+}
+
+@mixin triangle($width, $height, $color, $direction) {
+ $width: $width/2;
+ $color-border-style: $height solid $color;
+ $transparent-border-style: $width solid transparent;
+ height: 0;
+ width: 0;
+
+ @if $direction==up {
+ border-bottom: $color-border-style;
+ border-left: $transparent-border-style;
+ border-right: $transparent-border-style;
+ }
+
+ @else if $direction==right {
+ border-left: $color-border-style;
+ border-top: $transparent-border-style;
+ border-bottom: $transparent-border-style;
+ }
+
+ @else if $direction==down {
+ border-top: $color-border-style;
+ border-left: $transparent-border-style;
+ border-right: $transparent-border-style;
+ }
+
+ @else if $direction==left {
+ border-right: $color-border-style;
+ border-top: $transparent-border-style;
+ border-bottom: $transparent-border-style;
+ }
+}
diff --git a/src/assets/styles/ruoyi.scss b/src/assets/styles/ruoyi.scss
new file mode 100644
index 0000000..161c0e4
--- /dev/null
+++ b/src/assets/styles/ruoyi.scss
@@ -0,0 +1,361 @@
+/**
+* 通用css样式布局处理
+* Copyright (c) 2019 ruoyi
+*/
+
+/** 基础通用 **/
+.pt5 {
+ padding-top: 5px;
+}
+
+.pr5 {
+ padding-right: 5px;
+}
+
+.pb5 {
+ padding-bottom: 5px;
+}
+
+.mt5 {
+ margin-top: 5px;
+}
+
+.mr5 {
+ margin-right: 5px;
+}
+
+.mb5 {
+ margin-bottom: 5px;
+}
+
+.mb8 {
+ margin-bottom: 8px;
+}
+
+.ml5 {
+ margin-left: 5px;
+}
+
+.mt10 {
+ margin-top: 10px;
+}
+
+.mr10 {
+ margin-right: 10px;
+}
+
+.mb10 {
+ margin-bottom: 10px;
+}
+.ml10 {
+ margin-left: 10px;
+}
+
+.mt20 {
+ margin-top: 20px;
+}
+
+.mr20 {
+ margin-right: 20px;
+}
+
+.mb20 {
+ margin-bottom: 20px;
+}
+.ml20 {
+ margin-left: 20px;
+}
+
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+
+.el-message-box__status + .el-message-box__message {
+ word-break: break-word;
+}
+
+.el-dialog:not(.is-fullscreen) {
+ margin-top: 6vh !important;
+}
+
+.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
+ overflow: auto;
+ overflow-x: hidden;
+ max-height: 70vh;
+ padding: 10px 20px 0;
+}
+
+.el-table {
+ color: #002242;
+
+ .el-table__header-wrapper,
+ .el-table__fixed-header-wrapper {
+ th {
+ word-break: break-word;
+ background-color: #f8f8f9;
+ color: #000;
+ }
+ }
+
+ .el-table__body-wrapper {
+ .el-button [class*="el-icon-"] + span {
+ margin-left: 1px;
+ }
+ }
+
+ .el-table__body {
+ .el-table__row {
+ &:nth-child(2n) {
+ background-color: #fbfbfb;
+ }
+
+ &.el-table__row_checked {
+ background-color: #fbfbfb;
+ }
+ }
+ }
+
+ .custom-table-header {
+ th {
+ background-color: #f5f5f5;
+ }
+ }
+
+ .el-table__cell {
+ padding: 8px 0;
+ }
+
+ .cell {
+ line-height: 22px;
+ }
+}
+
+/** 表单布局 **/
+.form-header {
+ font-size: 15px;
+ color: #6379bb;
+ border-bottom: 1px solid #ddd;
+ margin: 8px 10px 25px 10px;
+ padding-bottom: 5px;
+}
+
+/** 表格布局 **/
+.pagination-container {
+ position: relative;
+ height: 25px;
+ margin-bottom: 10px;
+ margin-top: 15px;
+ padding: 10px 20px !important;
+}
+
+/* tree border */
+.tree-border {
+ margin-top: 5px;
+ border: 1px solid #e5e6e7;
+ background: #ffffff none;
+ border-radius: 4px;
+}
+
+.pagination-container .el-pagination {
+ right: 0;
+ position: absolute;
+}
+
+@media (max-width: 768px) {
+ .pagination-container .el-pagination > .el-pagination__jump {
+ display: none !important;
+ }
+ .pagination-container .el-pagination > .el-pagination__sizes {
+ display: none !important;
+ }
+}
+
+.el-table .fixed-width .el-button--mini {
+ padding-left: 0;
+ padding-right: 0;
+ width: inherit;
+}
+
+/** 表格更多操作下拉样式 */
+.el-table .el-dropdown-link,
+.el-table .el-dropdown-selfdefine {
+ cursor: pointer;
+ margin-left: 5px;
+}
+
+.el-table .el-dropdown,
+.el-icon-arrow-down {
+ font-size: 12px;
+}
+
+.el-tree-node__content > .el-checkbox {
+ margin-right: 8px;
+}
+
+.list-group-striped > .list-group-item {
+ border-left: 0;
+ border-right: 0;
+ border-radius: 0;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.list-group {
+ padding-left: 0px;
+ list-style: none;
+}
+
+.list-group-item {
+ border-bottom: 1px solid #e7eaec;
+ border-top: 1px solid #e7eaec;
+ margin-bottom: -1px;
+ padding: 11px 0px;
+ font-size: 13px;
+}
+
+.pull-right {
+ float: right !important;
+}
+
+.el-card {
+ display: flex;
+ flex-direction: column;
+ border-radius: 0;
+}
+
+.el-card__header {
+ min-height: 30px;
+ padding: 0;
+ padding-right: 10px;
+ display: flex;
+ align-items: center;
+ gap: 15px;
+ font-size: 14px;
+ color: #1d2129;
+ letter-spacing: 1px;
+
+ &::before {
+ content: "";
+ width: 4px;
+ height: 14px;
+ background: #1e89ff;
+ }
+}
+
+.el-card__body {
+ padding: 10px;
+ flex: 1;
+ overflow: auto;
+}
+
+.card-box {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-bottom: 10px;
+}
+
+/* button color */
+.el-button--cyan.is-active,
+.el-button--cyan:active {
+ background: #20b2aa;
+ border-color: #20b2aa;
+ color: #ffffff;
+}
+
+.el-button--cyan:focus,
+.el-button--cyan:hover {
+ background: #48d1cc;
+ border-color: #48d1cc;
+ color: #ffffff;
+}
+
+.el-button--cyan {
+ background-color: #20b2aa;
+ border-color: #20b2aa;
+ color: #ffffff;
+}
+
+/* text color */
+.text-navy {
+ color: #1ab394;
+}
+
+.text-primary {
+ color: inherit;
+}
+
+.text-success {
+ color: #1c84c6;
+}
+
+.text-info {
+ color: #23c6c8;
+}
+
+.text-warning {
+ color: #f8ac59;
+}
+
+.text-danger {
+ color: #ed5565;
+}
+
+.text-muted {
+ color: #888888;
+}
+
+/* image */
+.img-circle {
+ border-radius: 50%;
+}
+
+.img-lg {
+ width: 120px;
+ height: 120px;
+}
+
+.avatar-upload-preview {
+ position: relative;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 200px;
+ height: 200px;
+ border-radius: 50%;
+ box-shadow: 0 0 4px #ccc;
+ overflow: hidden;
+}
+
+/* 拖拽列样式 */
+.sortable-ghost {
+ opacity: 0.8;
+ color: #fff !important;
+ background: #42b983 !important;
+}
+
+.top-right-btn {
+ position: relative;
+ float: right;
+}
+
+.el-button.is-disabled,
+.el-button.is-disabled:hover,
+.el-button.is-disabled:focus {
+ background-color: #ebebeb;
+ border-color: #d9d9d9;
+ color: rgba(0, 0, 0, 0.25);
+}
diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss
new file mode 100644
index 0000000..abe5b63
--- /dev/null
+++ b/src/assets/styles/sidebar.scss
@@ -0,0 +1,227 @@
+#app {
+
+ .main-container {
+ height: 100%;
+ transition: margin-left .28s;
+ margin-left: $base-sidebar-width;
+ position: relative;
+ }
+
+ .sidebarHide {
+ margin-left: 0!important;
+ }
+
+ .sidebar-container {
+ -webkit-transition: width .28s;
+ transition: width 0.28s;
+ width: $base-sidebar-width !important;
+ background-color: $base-menu-background;
+ height: 100%;
+ position: fixed;
+ font-size: 0px;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1001;
+ overflow: hidden;
+ -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
+ box-shadow: 2px 0 6px rgba(0,21,41,.35);
+
+ // reset element-ui css
+ .horizontal-collapse-transition {
+ transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
+ }
+
+ .scrollbar-wrapper {
+ overflow-x: hidden !important;
+ }
+
+ .el-scrollbar__bar.is-vertical {
+ right: 0px;
+ }
+
+ .el-scrollbar {
+ height: 100%;
+ }
+
+ &.has-logo {
+ .el-scrollbar {
+ height: calc(100% - 50px);
+ }
+ }
+
+ .is-horizontal {
+ display: none;
+ }
+
+ a {
+ display: inline-block;
+ width: 100%;
+ overflow: hidden;
+ }
+
+ .svg-icon {
+ margin-right: 16px;
+ }
+
+ .el-menu {
+ border: none;
+ height: 100%;
+ width: 100% !important;
+ }
+
+ .el-menu-item, .el-submenu__title {
+ overflow: hidden !important;
+ text-overflow: ellipsis !important;
+ white-space: nowrap !important;
+ }
+
+ // menu hover
+ .submenu-title-noDropdown,
+ .el-submenu__title {
+ &:hover {
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ }
+ }
+
+ & .theme-dark .is-active > .el-submenu__title {
+ color: $base-menu-color-active !important;
+ }
+
+ & .nest-menu .el-submenu>.el-submenu__title,
+ & .el-submenu .el-menu-item {
+ min-width: $base-sidebar-width !important;
+
+ &:hover {
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ }
+ }
+
+ & .theme-dark .nest-menu .el-submenu>.el-submenu__title,
+ & .theme-dark .el-submenu .el-menu-item {
+ background-color: $base-sub-menu-background !important;
+
+ &:hover {
+ background-color: $base-sub-menu-hover !important;
+ }
+ }
+ }
+
+ .hideSidebar {
+ .sidebar-container {
+ width: 54px !important;
+ }
+
+ .main-container {
+ margin-left: 54px;
+ }
+
+ .submenu-title-noDropdown {
+ padding: 0 !important;
+ position: relative;
+
+ .el-tooltip {
+ padding: 0 !important;
+
+ .svg-icon {
+ margin-left: 20px;
+ }
+ }
+ }
+
+ .el-submenu {
+ overflow: hidden;
+
+ &>.el-submenu__title {
+ padding: 0 !important;
+
+ .svg-icon {
+ margin-left: 20px;
+ }
+
+ }
+ }
+
+ .el-menu--collapse {
+ .el-submenu {
+ &>.el-submenu__title {
+ &>span {
+ height: 0;
+ width: 0;
+ overflow: hidden;
+ visibility: hidden;
+ display: inline-block;
+ }
+ }
+ }
+ }
+ }
+
+ .el-menu--collapse .el-menu .el-submenu {
+ min-width: $base-sidebar-width !important;
+ }
+
+ // mobile responsive
+ .mobile {
+ .main-container {
+ margin-left: 0px;
+ }
+
+ .sidebar-container {
+ transition: transform .28s;
+ width: $base-sidebar-width !important;
+ }
+
+ &.hideSidebar {
+ .sidebar-container {
+ pointer-events: none;
+ transition-duration: 0.3s;
+ transform: translate3d(-$base-sidebar-width, 0, 0);
+ }
+ }
+ }
+
+ .withoutAnimation {
+
+ .main-container,
+ .sidebar-container {
+ transition: none;
+ }
+ }
+}
+
+// when menu collapsed
+.el-menu--vertical {
+ &>.el-menu {
+ .svg-icon {
+ margin-right: 16px;
+ }
+ }
+
+ .nest-menu .el-submenu>.el-submenu__title,
+ .el-menu-item {
+ &:hover {
+ // you can use $subMenuHover
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ }
+ }
+
+ // the scroll bar appears when the subMenu is too long
+ >.el-menu--popup {
+ max-height: 100vh;
+ overflow-y: auto;
+
+ &::-webkit-scrollbar-track-piece {
+ background: #d3dce6;
+ }
+
+ &::-webkit-scrollbar {
+ width: 6px;
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background: #99a9bf;
+ border-radius: 20px;
+ }
+ }
+}
diff --git a/src/assets/styles/transition.scss b/src/assets/styles/transition.scss
new file mode 100644
index 0000000..073f8c6
--- /dev/null
+++ b/src/assets/styles/transition.scss
@@ -0,0 +1,49 @@
+// global transition css
+
+/* fade */
+.fade-enter-active,
+.fade-leave-active {
+ transition: opacity 0.28s;
+}
+
+.fade-enter,
+.fade-leave-active {
+ opacity: 0;
+}
+
+/* fade-transform */
+.fade-transform--move,
+.fade-transform-leave-active,
+.fade-transform-enter-active {
+ transition: all .5s;
+}
+
+.fade-transform-enter {
+ opacity: 0;
+ transform: translateX(-30px);
+}
+
+.fade-transform-leave-to {
+ opacity: 0;
+ transform: translateX(30px);
+}
+
+/* breadcrumb transition */
+.breadcrumb-enter-active,
+.breadcrumb-leave-active {
+ transition: all .5s;
+}
+
+.breadcrumb-enter,
+.breadcrumb-leave-active {
+ opacity: 0;
+ transform: translateX(20px);
+}
+
+.breadcrumb-move {
+ transition: all .5s;
+}
+
+.breadcrumb-leave-active {
+ position: absolute;
+}
diff --git a/src/assets/styles/variables.scss b/src/assets/styles/variables.scss
new file mode 100644
index 0000000..95720fa
--- /dev/null
+++ b/src/assets/styles/variables.scss
@@ -0,0 +1,54 @@
+// base color
+$blue:#324157;
+$light-blue:#3A71A8;
+$red:#C03639;
+$pink: #E65D6E;
+$green: #30B08F;
+$tiffany: #4AB7BD;
+$yellow:#FEC171;
+$panGreen: #30B08F;
+
+// 默认菜单主题风格
+$base-menu-color:#bfcbd9;
+$base-menu-color-active:#f4f4f5;
+$base-menu-background:#304156;
+$base-logo-title-color: #ffffff;
+
+$base-menu-light-color:rgba(0,0,0,.70);
+$base-menu-light-background:#ffffff;
+$base-logo-light-title-color: #001529;
+
+$base-sub-menu-background:#1f2d3d;
+$base-sub-menu-hover:#001528;
+
+// 自定义暗色菜单风格
+/**
+$base-menu-color:hsla(0,0%,100%,.65);
+$base-menu-color-active:#fff;
+$base-menu-background:#001529;
+$base-logo-title-color: #ffffff;
+
+$base-menu-light-color:rgba(0,0,0,.70);
+$base-menu-light-background:#ffffff;
+$base-logo-light-title-color: #001529;
+
+$base-sub-menu-background:#000c17;
+$base-sub-menu-hover:#001528;
+*/
+
+$base-sidebar-width: 0;
+
+// the :export directive is the magic sauce for webpack
+// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
+:export {
+ menuColor: $base-menu-color;
+ menuLightColor: $base-menu-light-color;
+ menuColorActive: $base-menu-color-active;
+ menuBackground: $base-menu-background;
+ menuLightBackground: $base-menu-light-background;
+ subMenuBackground: $base-sub-menu-background;
+ subMenuHover: $base-sub-menu-hover;
+ sideBarWidth: $base-sidebar-width;
+ logoTitleColor: $base-logo-title-color;
+ logoLightTitleColor: $base-logo-light-title-color
+}
diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue
new file mode 100644
index 0000000..98e4e30
--- /dev/null
+++ b/src/components/Breadcrumb/index.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/system/oss/config.vue b/src/views/system/oss/config.vue
new file mode 100644
index 0000000..d045715
--- /dev/null
+++ b/src/views/system/oss/config.vue
@@ -0,0 +1,402 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
new file mode 100644
index 0000000..8a8817e
--- /dev/null
+++ b/src/views/system/role/index.vue
@@ -0,0 +1,607 @@
+
+