大家好~我是小方,欢迎大家关注笋货测试笔记体完记得俾个like呀
回顾
在之前的篇章中,除了同步项目逻辑还没开发完毕,其余都开发好了,打开接口文档可以看到接口还是蛮多的,而我们的前端只是到了用户模块,所以接下来的几个篇章中,都会进行前后端的联调
项目列表页面联调
首先我们先在src/api
新建project.js
,把我们之前的api都填进去
import request from '@/utils/request'
export function getProjectList(params) {
return request({
url: '/project/list',
method: 'get',
params
})
}
export function deleteProject(id) {
return request({
url: '/project/delete',
method: 'get',
params: { id }
})
}
export function initProject(id) {
return request({
url: '/project/init',
method: 'get',
params: { id }
})
}
export function syncProject(id) {
return request({
url: '/project/sync',
method: 'get',
params: { id }
})
}
export function insertProject(data) {
return request({
url: '/project/insert',
method: 'post',
data
})
}
export function updateProject(data) {
return request({
url: '/project/update',
method: 'post',
data
})
}
export function readProject(id) {
return request({
url: '/project/read',
method: 'get',
params: { id }
})
}
export function operationProject(id) {
return request({
url: '/project/operation',
method: 'get',
params: { id }
})
}
export function getRoleList(params) {
return request({
url: '/project/role/list',
method: 'get',
params
})
}
export function insertProjectRole(data) {
return request({
url: '/project/role/insert',
method: 'post',
data
})
}
export function updateProjectRole(data) {
return request({
url: '/project/role/update',
method: 'post',
data
})
}
export function deleteProjectRole(id) {
return request({
url: '/project/role/delete',
method: 'get',
params: { id }
})
}
那我们的项目列表页面要怎么设计呢?这里参考了pity里面的项目列表设计,先来看看pity的项目列表页面,其实就是很多个小卡片组合起来!按钮通过鼠标移到三个点就闪现出来
那我们着手试试吧,卡片的话,直接用element的card,新建src/views/project/index.vue
文件,记得project
目录要先建起来
先把相关的api和分页组件引入
import { getProjectList } from '@/api/project'
import Pagination from '@/components/Pagination'
定义相关的字段,这里可直接参考用户列表那边的设计
新增获取项目列表数据方法
async getProject() {
this.listLoading = true
try {
const { data } = await getProjectList(this.listQuery)
this.lists = data.lists
this.total = data.total
this.listLoading = false
} catch (err) {
this.listLoading = false
console.log(err)
}
}
获取到项目列表数据后,该怎么展示呢?上面有说到用的是卡片,那我们直接v-for
循环生成卡片好了
接着再来设计一下卡片的下拉菜单功能,这里用到的是
el-dropdown
相关的用法,大家可直接看element官网
下拉菜单触发的事件
- 删除项目
先请求判断是否有操作项目权限,接着再弹窗二次确认,确认后,请求后端api
- 初始化项目
先请求判断是否有查看项目权限,接着再弹窗二次确认,确认后,请求后端api
- 同步项目
先请求判断是否有查看项目权限,接着再弹窗二次确认,确认后,请求后端api
- 设置权限
跟删除项目一样的逻辑,只不过这里是跳转到一个项目详情页面
- 搜索区域
创建项目按钮和搜索相关的,放在卡片顶部,直接用el-form
来设计
新增项目表单
这里表单的话,我们直接搞一个组件,在index
中引用子组件,这样子index
不会存在过多的代码
直接新增src/views/project/module/ProjectFrom.vue
,注意对应的目录也要建立起来,这里的一些交互这里先不展开讲了,前端可能大家都不太敢兴趣
父组件引用子组件
更多的代码大家可以看看index.view
和ProjectFrom.vue
完整展示效果
总结
今天就大概写了一下前端,讲得不是很清楚,大家后续直接拉代码看吧,前端这门功夫不是一时半刻能学会的,大家要加油~ 最近在写晋升PPT(已撸完)和半年绩效总结(写ing)一直鸽了那么久,抱歉!
- 项目地址
- 今日代码提交
- 前端:2ba8578