From 083603cec67d95b91834191b37644eac2e5f4483 Mon Sep 17 00:00:00 2001 From: ouhaolan Date: Tue, 11 Mar 2025 09:22:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=8F=90=E4=BA=A4=E5=88=9D=E6=AD=A5?= =?UTF-8?q?=E9=97=A8=E6=88=B7=E7=BD=91=E7=AB=99=E5=90=8E=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/portal/city/index.ts | 41 +++ src/api/portal/jobcategory/index.ts | 41 +++ src/api/portal/jobpost/index.ts | 45 ++++ src/api/portal/news/index.ts | 46 ++++ src/api/portal/newstype/index.ts | 40 +++ src/api/portal/user/index.ts | 42 +++ src/views/portal/city/CityForm.vue | 98 +++++++ src/views/portal/city/index.vue | 198 ++++++++++++++ .../portal/jobcategory/JobCategoryForm.vue | 97 +++++++ src/views/portal/jobcategory/index.vue | 198 ++++++++++++++ src/views/portal/jobpost/JobPostForm.vue | 124 +++++++++ src/views/portal/jobpost/index.vue | 241 +++++++++++++++++ src/views/portal/news/NewsForm.vue | 130 +++++++++ src/views/portal/news/index.vue | 252 ++++++++++++++++++ src/views/portal/newstype/NewsTypeForm.vue | 92 +++++++ src/views/portal/newstype/index.vue | 187 +++++++++++++ src/views/portal/user/UserForm.vue | 103 +++++++ src/views/portal/user/index.vue | 209 +++++++++++++++ 18 files changed, 2184 insertions(+) create mode 100644 src/api/portal/city/index.ts create mode 100644 src/api/portal/jobcategory/index.ts create mode 100644 src/api/portal/jobpost/index.ts create mode 100644 src/api/portal/news/index.ts create mode 100644 src/api/portal/newstype/index.ts create mode 100644 src/api/portal/user/index.ts create mode 100644 src/views/portal/city/CityForm.vue create mode 100644 src/views/portal/city/index.vue create mode 100644 src/views/portal/jobcategory/JobCategoryForm.vue create mode 100644 src/views/portal/jobcategory/index.vue create mode 100644 src/views/portal/jobpost/JobPostForm.vue create mode 100644 src/views/portal/jobpost/index.vue create mode 100644 src/views/portal/news/NewsForm.vue create mode 100644 src/views/portal/news/index.vue create mode 100644 src/views/portal/newstype/NewsTypeForm.vue create mode 100644 src/views/portal/newstype/index.vue create mode 100644 src/views/portal/user/UserForm.vue create mode 100644 src/views/portal/user/index.vue diff --git a/src/api/portal/city/index.ts b/src/api/portal/city/index.ts new file mode 100644 index 0000000..0a45c20 --- /dev/null +++ b/src/api/portal/city/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +// 城市 VO +export interface CityVO { + id: number // 主键ID + name: string // 城市名称 + code: string // 城市编码 +} + +// 城市 API +export const CityApi = { + // 查询城市分页 + getCityPage: async (params: any) => { + return await request.get({ url: `/portal/city/page`, params }) + }, + + // 查询城市详情 + getCity: async (id: number) => { + return await request.get({ url: `/portal/city/get?id=` + id }) + }, + + // 新增城市 + createCity: async (data: CityVO) => { + return await request.post({ url: `/portal/city/create`, data }) + }, + + // 修改城市 + updateCity: async (data: CityVO) => { + return await request.put({ url: `/portal/city/update`, data }) + }, + + // 删除城市 + deleteCity: async (id: number) => { + return await request.delete({ url: `/portal/city/delete?id=` + id }) + }, + + // 导出城市 Excel + exportCity: async (params) => { + return await request.download({ url: `/portal/city/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/portal/jobcategory/index.ts b/src/api/portal/jobcategory/index.ts new file mode 100644 index 0000000..fdb8561 --- /dev/null +++ b/src/api/portal/jobcategory/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +// 职位类别 VO +export interface JobCategoryVO { + id: number // 主键ID + name: string // 类别名称 + parentId: number // 父类别ID +} + +// 职位类别 API +export const JobCategoryApi = { + // 查询职位类别分页 + getJobCategoryPage: async (params: any) => { + return await request.get({ url: `/portal/job-category/page`, params }) + }, + + // 查询职位类别详情 + getJobCategory: async (id: number) => { + return await request.get({ url: `/portal/job-category/get?id=` + id }) + }, + + // 新增职位类别 + createJobCategory: async (data: JobCategoryVO) => { + return await request.post({ url: `/portal/job-category/create`, data }) + }, + + // 修改职位类别 + updateJobCategory: async (data: JobCategoryVO) => { + return await request.put({ url: `/portal/job-category/update`, data }) + }, + + // 删除职位类别 + deleteJobCategory: async (id: number) => { + return await request.delete({ url: `/portal/job-category/delete?id=` + id }) + }, + + // 导出职位类别 Excel + exportJobCategory: async (params) => { + return await request.download({ url: `/portal/job-category/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/portal/jobpost/index.ts b/src/api/portal/jobpost/index.ts new file mode 100644 index 0000000..5c310ce --- /dev/null +++ b/src/api/portal/jobpost/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// 职位 VO +export interface JobPostVO { + id: number // 主键ID + title: string // 职位标题 + description: string // 职位描述 + requirement: string // 职位要求 + cityId: number // 城市ID + jobCategoryId: number // 职位类别ID + publishTime: Date // 发布时间 +} + +// 职位 API +export const JobPostApi = { + // 查询职位分页 + getJobPostPage: async (params: any) => { + return await request.get({ url: `/portal/job-post/page`, params }) + }, + + // 查询职位详情 + getJobPost: async (id: number) => { + return await request.get({ url: `/portal/job-post/get?id=` + id }) + }, + + // 新增职位 + createJobPost: async (data: JobPostVO) => { + return await request.post({ url: `/portal/job-post/create`, data }) + }, + + // 修改职位 + updateJobPost: async (data: JobPostVO) => { + return await request.put({ url: `/portal/job-post/update`, data }) + }, + + // 删除职位 + deleteJobPost: async (id: number) => { + return await request.delete({ url: `/portal/job-post/delete?id=` + id }) + }, + + // 导出职位 Excel + exportJobPost: async (params) => { + return await request.download({ url: `/portal/job-post/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/portal/news/index.ts b/src/api/portal/news/index.ts new file mode 100644 index 0000000..78565c6 --- /dev/null +++ b/src/api/portal/news/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// 新闻 VO +export interface NewsVO { + id: number // 主键ID + newsTitle: string // 新闻标题 + newsDesc: string // 新闻描述 + newsContent: string // 新闻内容 + newsPath: string // 新闻路径 + coverImg: string // 封面图片 + newsTypeId: number // 新闻类型ID + publishTime: Date // 发布时间 +} + +// 新闻 API +export const NewsApi = { + // 查询新闻分页 + getNewsPage: async (params: any) => { + return await request.get({ url: `/portal/news/page`, params }) + }, + + // 查询新闻详情 + getNews: async (id: number) => { + return await request.get({ url: `/portal/news/get?id=` + id }) + }, + + // 新增新闻 + createNews: async (data: NewsVO) => { + return await request.post({ url: `/portal/news/create`, data }) + }, + + // 修改新闻 + updateNews: async (data: NewsVO) => { + return await request.put({ url: `/portal/news/update`, data }) + }, + + // 删除新闻 + deleteNews: async (id: number) => { + return await request.delete({ url: `/portal/news/delete?id=` + id }) + }, + + // 导出新闻 Excel + exportNews: async (params) => { + return await request.download({ url: `/portal/news/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/portal/newstype/index.ts b/src/api/portal/newstype/index.ts new file mode 100644 index 0000000..e68f177 --- /dev/null +++ b/src/api/portal/newstype/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +// 新闻类型 VO +export interface NewsTypeVO { + id: number // 主键ID + typeName: string // 类型名称 +} + +// 新闻类型 API +export const NewsTypeApi = { + // 查询新闻类型分页 + getNewsTypePage: async (params: any) => { + return await request.get({ url: `/portal/news-type/page`, params }) + }, + + // 查询新闻类型详情 + getNewsType: async (id: number) => { + return await request.get({ url: `/portal/news-type/get?id=` + id }) + }, + + // 新增新闻类型 + createNewsType: async (data: NewsTypeVO) => { + return await request.post({ url: `/portal/news-type/create`, data }) + }, + + // 修改新闻类型 + updateNewsType: async (data: NewsTypeVO) => { + return await request.put({ url: `/portal/news-type/update`, data }) + }, + + // 删除新闻类型 + deleteNewsType: async (id: number) => { + return await request.delete({ url: `/portal/news-type/delete?id=` + id }) + }, + + // 导出新闻类型 Excel + exportNewsType: async (params) => { + return await request.download({ url: `/portal/news-type/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/portal/user/index.ts b/src/api/portal/user/index.ts new file mode 100644 index 0000000..059b8fe --- /dev/null +++ b/src/api/portal/user/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +// 用户 VO +export interface UserVO { + id: number // 主键ID + username: string // 用户名 + password: string // 密码 + token: string // 登录token +} + +// 用户 API +export const UserApi = { + // 查询用户分页 + getUserPage: async (params: any) => { + return await request.get({ url: `/portal/user/page`, params }) + }, + + // 查询用户详情 + getUser: async (id: number) => { + return await request.get({ url: `/portal/user/get?id=` + id }) + }, + + // 新增用户 + createUser: async (data: UserVO) => { + return await request.post({ url: `/portal/user/create`, data }) + }, + + // 修改用户 + updateUser: async (data: UserVO) => { + return await request.put({ url: `/portal/user/update`, data }) + }, + + // 删除用户 + deleteUser: async (id: number) => { + return await request.delete({ url: `/portal/user/delete?id=` + id }) + }, + + // 导出用户 Excel + exportUser: async (params) => { + return await request.download({ url: `/portal/user/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/views/portal/city/CityForm.vue b/src/views/portal/city/CityForm.vue new file mode 100644 index 0000000..94d1cd8 --- /dev/null +++ b/src/views/portal/city/CityForm.vue @@ -0,0 +1,98 @@ + + \ No newline at end of file diff --git a/src/views/portal/city/index.vue b/src/views/portal/city/index.vue new file mode 100644 index 0000000..f258f87 --- /dev/null +++ b/src/views/portal/city/index.vue @@ -0,0 +1,198 @@ + + + \ No newline at end of file diff --git a/src/views/portal/jobcategory/JobCategoryForm.vue b/src/views/portal/jobcategory/JobCategoryForm.vue new file mode 100644 index 0000000..84c148b --- /dev/null +++ b/src/views/portal/jobcategory/JobCategoryForm.vue @@ -0,0 +1,97 @@ + + \ No newline at end of file diff --git a/src/views/portal/jobcategory/index.vue b/src/views/portal/jobcategory/index.vue new file mode 100644 index 0000000..d37a271 --- /dev/null +++ b/src/views/portal/jobcategory/index.vue @@ -0,0 +1,198 @@ + + + \ No newline at end of file diff --git a/src/views/portal/jobpost/JobPostForm.vue b/src/views/portal/jobpost/JobPostForm.vue new file mode 100644 index 0000000..e689eeb --- /dev/null +++ b/src/views/portal/jobpost/JobPostForm.vue @@ -0,0 +1,124 @@ + + \ No newline at end of file diff --git a/src/views/portal/jobpost/index.vue b/src/views/portal/jobpost/index.vue new file mode 100644 index 0000000..ae41d51 --- /dev/null +++ b/src/views/portal/jobpost/index.vue @@ -0,0 +1,241 @@ + + + \ No newline at end of file diff --git a/src/views/portal/news/NewsForm.vue b/src/views/portal/news/NewsForm.vue new file mode 100644 index 0000000..b3f0e6b --- /dev/null +++ b/src/views/portal/news/NewsForm.vue @@ -0,0 +1,130 @@ + + \ No newline at end of file diff --git a/src/views/portal/news/index.vue b/src/views/portal/news/index.vue new file mode 100644 index 0000000..d754179 --- /dev/null +++ b/src/views/portal/news/index.vue @@ -0,0 +1,252 @@ + + + \ No newline at end of file diff --git a/src/views/portal/newstype/NewsTypeForm.vue b/src/views/portal/newstype/NewsTypeForm.vue new file mode 100644 index 0000000..d3c610d --- /dev/null +++ b/src/views/portal/newstype/NewsTypeForm.vue @@ -0,0 +1,92 @@ + + \ No newline at end of file diff --git a/src/views/portal/newstype/index.vue b/src/views/portal/newstype/index.vue new file mode 100644 index 0000000..a6dedb3 --- /dev/null +++ b/src/views/portal/newstype/index.vue @@ -0,0 +1,187 @@ + + + \ No newline at end of file diff --git a/src/views/portal/user/UserForm.vue b/src/views/portal/user/UserForm.vue new file mode 100644 index 0000000..aa1b2dc --- /dev/null +++ b/src/views/portal/user/UserForm.vue @@ -0,0 +1,103 @@ + + \ No newline at end of file diff --git a/src/views/portal/user/index.vue b/src/views/portal/user/index.vue new file mode 100644 index 0000000..38fd84b --- /dev/null +++ b/src/views/portal/user/index.vue @@ -0,0 +1,209 @@ + + + \ No newline at end of file