diff --git a/locales/en.yaml b/locales/en.yaml index 468128c57..1b20de73f 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -24,6 +24,7 @@ menus: hssysManagement: System Manage hsBaseinfo: Base Info hsDict: Dict Manage + hsJob: Job Manage hseditor: Editor hserror: Error Page hsfourZeroFour: "404" diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml index 510d6ab12..fd74ebfbf 100644 --- a/locales/zh-CN.yaml +++ b/locales/zh-CN.yaml @@ -24,6 +24,7 @@ menus: hssysManagement: 系统管理 hsBaseinfo: 基础信息 hsDict: 字典管理 + hsJob: 岗位管理 hseditor: 编辑器 hserror: 错误页面 hsfourZeroFour: "404" diff --git a/mock/asyncRoutes.ts b/mock/asyncRoutes.ts index cd2f85c3b..73da0a0b6 100644 --- a/mock/asyncRoutes.ts +++ b/mock/asyncRoutes.ts @@ -28,6 +28,14 @@ const systemRouter = { i18n: true, keepAlive: true } + }, + { + path: "/system/job/index", + name: "job", + meta: { + title: "menus.hsJob", + i18n: true + } } ] }; diff --git a/mock/system.ts b/mock/system.ts new file mode 100644 index 000000000..ac0538959 --- /dev/null +++ b/mock/system.ts @@ -0,0 +1,55 @@ +import { MockMethod } from "vite-plugin-mock"; + +export default [ + { + url: "/system", + method: "post", + response: () => { + return { + code: 0, + data: { + list: [ + { + name: "董事长", + code: "ceo", + sort: 1, + status: 0, + remark: "", + id: 1, + createTime: 1609837428000 + }, + { + name: "项目经理", + code: "se", + sort: 2, + status: 0, + remark: "", + id: 2, + createTime: 1609837428000 + }, + { + name: "人力资源", + code: "hr", + sort: 3, + status: 0, + remark: "", + id: 3, + createTime: 1609837428000 + }, + { + name: "普通员工", + code: "user", + sort: 4, + status: 0, + remark: "", + id: 4, + createTime: 1609837428000 + } + ], + total: 4 + }, + msg: "" + }; + } + } +] as MockMethod[]; diff --git a/package.json b/package.json index 753136088..95dd8c864 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "@iconify-icons/fa": "^1.2.2", "@iconify-icons/fa-solid": "^1.2.2", "@iconify-icons/ri": "^1.2.1", + "@iconify-icons/uil": "^1.2.1", "@iconify/vue": "^3.2.0", "@intlify/vite-plugin-vue-i18n": "^3.3.1", "@pureadmin/theme": "^0.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 13b8fb2f7..bfef634d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,6 +9,7 @@ specifiers: "@iconify-icons/fa": ^1.2.2 "@iconify-icons/fa-solid": ^1.2.2 "@iconify-icons/ri": ^1.2.1 + "@iconify-icons/uil": ^1.2.1 "@iconify/vue": ^3.2.0 "@intlify/vite-plugin-vue-i18n": ^3.3.1 "@logicflow/core": 0.7.1 @@ -152,6 +153,7 @@ devDependencies: "@iconify-icons/fa": 1.2.2 "@iconify-icons/fa-solid": 1.2.2 "@iconify-icons/ri": 1.2.1 + "@iconify-icons/uil": 1.2.1 "@iconify/vue": 3.2.0_vue@3.2.31 "@intlify/vite-plugin-vue-i18n": 3.3.1_5e55492be6688dd52c71c76ed1867e7f "@pureadmin/theme": 0.0.1 @@ -995,6 +997,15 @@ packages: "@iconify/types": 1.1.0 dev: true + /@iconify-icons/uil/1.2.1: + resolution: + { + integrity: sha512-ovb4896S1EH6gqP98NPa4pKzNYaJTtrXoEzM4xm3RJAF9/ke4N96v+DOGnR3oT+EGpdfJjzlyISeDqNlPvpCXw== + } + dependencies: + "@iconify/types": 1.1.0 + dev: true + /@iconify/types/1.1.0: resolution: { diff --git a/src/api/system.ts b/src/api/system.ts new file mode 100644 index 000000000..33652d8ee --- /dev/null +++ b/src/api/system.ts @@ -0,0 +1,12 @@ +import { http } from "../utils/http"; + +interface jobType extends Promise { + data?: object; + code?: number; + msg?: string; +} + +// 获取岗位管理列表 +export const getJobList = (data?: object): jobType => { + return http.request("post", "/system", { data }); +}; diff --git a/src/components/ReIcon/src/iconifyIconOffline.ts b/src/components/ReIcon/src/iconifyIconOffline.ts index 299b41d0f..f9a9484a5 100644 --- a/src/components/ReIcon/src/iconifyIconOffline.ts +++ b/src/components/ReIcon/src/iconifyIconOffline.ts @@ -28,6 +28,7 @@ import Rank from "@iconify-icons/ep/rank"; import videoPlay from "@iconify-icons/ep/video-play"; import Monitor from "@iconify-icons/ep/monitor"; import Search from "@iconify-icons/ep/search"; +import Refresh from "@iconify-icons/ep/refresh"; addIcon("check", Check); addIcon("menu", Menu); addIcon("home-filled", HomeFilled); @@ -54,6 +55,7 @@ addIcon("video-play", videoPlay); addIcon("rank", Rank); addIcon("monitor", Monitor); addIcon("search", Search); +addIcon("refresh", Refresh); // remixicon import arrowRightSLine from "@iconify-icons/ri/arrow-right-s-line"; @@ -89,6 +91,14 @@ addIcon("fa-user", faUser); addIcon("fa-lock", faLock); addIcon("fa-sign-out", faSignOut); +// Unicons +import Import from "@iconify-icons/uil/import"; +import Export from "@iconify-icons/uil/export"; +import ArrowsShrinkV from "@iconify-icons/uil/arrows-shrink-v"; +addIcon("import", Import); +addIcon("export", Export); +addIcon("density", ArrowsShrinkV); + // Iconify Icon在Vue里离线使用(用于内网环境)https://docs.iconify.design/icon-components/vue/offline.html export default defineComponent({ name: "IconifyIcon", diff --git a/src/plugins/element-plus/index.ts b/src/plugins/element-plus/index.ts index 90aa22a20..599945939 100644 --- a/src/plugins/element-plus/index.ts +++ b/src/plugins/element-plus/index.ts @@ -56,6 +56,7 @@ import { ElStep, ElTree, ElTreeV2, + ElPopconfirm, // 指令 ElLoading, ElInfiniteScroll @@ -110,6 +111,7 @@ const components = [ ElCollapseItem, ElTree, ElTreeV2, + ElPopconfirm, ElTable, ElTableColumn, ElLink, diff --git a/src/views/system/job/index.vue b/src/views/system/job/index.vue new file mode 100644 index 000000000..f083ba4ec --- /dev/null +++ b/src/views/system/job/index.vue @@ -0,0 +1,202 @@ + + + + + + +