需求接口完善
This commit is contained in:
@@ -39,6 +39,16 @@ public class TestProjectController extends BaseController {
|
|||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询需求详情
|
||||||
|
* @param qo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/projectDetail")
|
||||||
|
public AjaxResult projectDetail(@RequestBody IDQO qo) {
|
||||||
|
return success(testProjectService.selectTestProjectById(qo.getId()));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增需求
|
* 新增需求
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -26,5 +26,12 @@ public interface TestProjectMapper {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
int deleteTestProjectById(Long id);
|
int deleteTestProjectById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据id查询需求详情
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
TestProject selectTestProjectById(Long id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,4 +31,11 @@ public interface ITestProjectService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public int deleteTestProjectById(Long id);
|
public int deleteTestProjectById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询需求详情
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public TestProject selectTestProjectById(Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,4 +53,14 @@ public class TestProjectServiceImpl implements ITestProjectService {
|
|||||||
return testProjectMapper.deleteTestProjectById(id);
|
return testProjectMapper.deleteTestProjectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据id查询需求详情
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TestProject selectTestProjectById(Long id) {
|
||||||
|
return testProjectMapper.selectTestProjectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,43 @@
|
|||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.test.test.mapper.TestProjectMapper">
|
<mapper namespace="com.test.test.mapper.TestProjectMapper">
|
||||||
|
|
||||||
|
<resultMap type="TestProject" id="TestProjectResult">
|
||||||
|
<result property="id" column="id"/>
|
||||||
|
<result property="serialNumber" column="serial_number"/>
|
||||||
|
<result property="name" column="name"/>
|
||||||
|
<result property="outline" column="outline"/>
|
||||||
|
<result property="detail" column="detail"/>
|
||||||
|
<result property="priority" column="priority"/>
|
||||||
|
<result property="estimatedTime" column="estimated_time"/>
|
||||||
|
<result property="source" column="source"/>
|
||||||
|
<result property="type" column="type"/>
|
||||||
|
<result property="status" column="status"/>
|
||||||
|
<result property="manager" column="manager"/>
|
||||||
|
<result property="createTime" column="create_time"/>
|
||||||
|
<result property="updateTime" column="update_time"/>
|
||||||
|
<result property="version" column="version"/>
|
||||||
|
<result property="delFlag" column="del_flag"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectTestProjectVo">
|
||||||
|
SELECT id,
|
||||||
|
serial_number,
|
||||||
|
name,
|
||||||
|
outline,
|
||||||
|
detail,
|
||||||
|
priority,
|
||||||
|
estimated_time,
|
||||||
|
source,
|
||||||
|
type,
|
||||||
|
status,
|
||||||
|
manager,
|
||||||
|
create_time,
|
||||||
|
update_time,
|
||||||
|
version,
|
||||||
|
del_flag
|
||||||
|
FROM test_project
|
||||||
|
</sql>
|
||||||
|
|
||||||
<insert id="insertTestProject" parameterType="testProject" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insertTestProject" parameterType="testProject" useGeneratedKeys="true" keyProperty="id">
|
||||||
INSERT INTO test_project (
|
INSERT INTO test_project (
|
||||||
<trim prefix="" suffix="" suffixOverrides=",">
|
<trim prefix="" suffix="" suffixOverrides=",">
|
||||||
@@ -68,27 +105,32 @@
|
|||||||
tp.del_flag
|
tp.del_flag
|
||||||
FROM test_project tp
|
FROM test_project tp
|
||||||
LEFT JOIN sys_user su ON su.user_id = tp.manager
|
LEFT JOIN sys_user su ON su.user_id = tp.manager
|
||||||
where 1=1
|
where 1=1
|
||||||
<if test="serialNumber != null and serialNumber != ''">
|
<if test="serialNumber != null and serialNumber != ''">
|
||||||
AND serial_number LIKE concat('%', #{serialNumber}, '%')
|
AND serial_number LIKE concat('%', #{serialNumber}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="outline != null and outline != ''">
|
<if test="outline != null and outline != ''">
|
||||||
AND outline LIKE concat('%', #{outline}, '%')
|
AND outline LIKE concat('%', #{outline}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="startCreateTime != null">
|
<if test="startCreateTime != null">
|
||||||
AND DATE_FORMAT(IFNULL(tp.create_time,''),'%Y%m%d') <![CDATA[ >= ]]> DATE_FORMAT(#{startCreateTime},'%Y%m%d')
|
AND DATE_FORMAT(IFNULL(tp.create_time,''),'%Y%m%d') <![CDATA[ >= ]]> DATE_FORMAT(#{startCreateTime},'%Y%m%d')
|
||||||
</if>
|
</if>
|
||||||
<if test="endCreateTime != null">
|
<if test="endCreateTime != null">
|
||||||
AND DATE_FORMAT(IFNULL(tp.create_time,''),'%Y%m%d') <![CDATA[ <= ]]> DATE_FORMAT(#{endCreateTime},'%Y%m%d')
|
AND DATE_FORMAT(IFNULL(tp.create_time,''),'%Y%m%d') <![CDATA[ <= ]]> DATE_FORMAT(#{endCreateTime},'%Y%m%d')
|
||||||
</if>
|
</if>
|
||||||
<if test="manager != null and manager != ''">
|
<if test="manager != null and manager != ''">
|
||||||
AND manager = #{manager}
|
AND manager = #{manager}
|
||||||
</if>
|
</if>
|
||||||
<if test="priority != null and priority != ''">
|
<if test="priority != null and priority != ''">
|
||||||
AND priority = #{priority}
|
AND priority = #{priority}
|
||||||
</if>
|
</if>
|
||||||
<if test="status !=null and status != ''">
|
<if test="status !=null and status != ''">
|
||||||
AND tp.status = #{status}
|
AND tp.status = #{status}
|
||||||
</if>
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectTestProjectById" parameterType="Long" resultMap="TestProjectResult">
|
||||||
|
<include refid="selectTestProjectVo"/>
|
||||||
|
WHERE id = #{id}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -4,7 +4,8 @@ const api = {
|
|||||||
managerList: 'system/user/list',
|
managerList: 'system/user/list',
|
||||||
projectList: 'test/project/projectList',
|
projectList: 'test/project/projectList',
|
||||||
addProject: 'test/project/addProject',
|
addProject: 'test/project/addProject',
|
||||||
delProject: 'test/project/delProject'
|
delProject: 'test/project/delProject',
|
||||||
|
getProjectDetail: 'test/project/projectDetail'
|
||||||
}
|
}
|
||||||
|
|
||||||
export function managerList(data) {
|
export function managerList(data) {
|
||||||
@@ -39,3 +40,12 @@ export function delProject(id) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export function getProjectDetail(id) {
|
||||||
|
return request({
|
||||||
|
url: api.getProjectDetail,
|
||||||
|
method: 'post',
|
||||||
|
data: {id}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,7 +83,11 @@
|
|||||||
<el-table-column prop="serialNumber" label="ID" align="center"/>
|
<el-table-column prop="serialNumber" label="ID" align="center"/>
|
||||||
<el-table-column prop="version" label="版本" align="center"/>
|
<el-table-column prop="version" label="版本" align="center"/>
|
||||||
<el-table-column prop="outline" label="概要" align="center"/>
|
<el-table-column prop="outline" label="概要" align="center"/>
|
||||||
<el-table-column prop="priority" label="优先级" align="center"/>
|
<el-table-column prop="priority" label="优先级" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag :type="priorityColor[scope.row.priority]">{{ scope.row.priority }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="status" label="状态" align="center">
|
<el-table-column prop="status" label="状态" align="center">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<dict-tag :options="dict.type.status" :value="row.status"/>
|
<dict-tag :options="dict.type.status" :value="row.status"/>
|
||||||
@@ -93,7 +97,9 @@
|
|||||||
<el-table-column prop="createTime" label="创建时间" align="center"/>
|
<el-table-column prop="createTime" label="创建时间" align="center"/>
|
||||||
<el-table-column label="操作" align="left" fixed="right">
|
<el-table-column label="操作" align="left" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button size="mini" type="text" icon="el-icon-delete" @click.native.stop="handleDelete(scope.row.id)">删除</el-button>
|
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleEdit(scope.row.id)">编辑</el-button>
|
||||||
|
<el-button size="mini" type="text" icon="el-icon-delete" @click.native.stop="handleDelete(scope.row.id)">删除
|
||||||
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-Table>
|
</el-Table>
|
||||||
@@ -171,17 +177,76 @@
|
|||||||
</el-container>
|
</el-container>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="addOpen = false">取 消</el-button>
|
<el-button @click="addOpen = false">取 消</el-button>
|
||||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
</span>
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog :title="title" :visible.sync="editOpen" width="90%">
|
||||||
|
<el-form ref="editForm" :rules="rules" :model="editForm" label-width="110px" label-position="right">
|
||||||
|
<el-container>
|
||||||
|
<el-main>
|
||||||
|
<el-form-item label="需求概要" prop="outline">
|
||||||
|
<el-input v-model="editForm.outline" placeholder="请输入"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 描述 -->
|
||||||
|
<el-form-item label="描述" prop="detail">
|
||||||
|
<el-input type="textarea" v-model="editForm.detail" :rows="22"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-main>
|
||||||
|
<el-aside width="450px" class="basic-information">
|
||||||
|
<h3>基础信息</h3>
|
||||||
|
<el-form-item label="需求名称" prop="name">
|
||||||
|
<el-input v-model="editForm.name" placeholder="请输入"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="需求ID" prop="serialNumber">
|
||||||
|
<el-input v-model="editForm.serialNumber" placeholder="请输入"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="负责人" prop="manager">
|
||||||
|
<el-select v-model="editForm.manager" placeholder="请选择负责人" clearable>
|
||||||
|
<SimpleOptions :options="managerList"/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="优先级" prop="priority">
|
||||||
|
<el-select v-model="editForm.priority" placeholder="未设置" clearable filterable>
|
||||||
|
<simple-options :options="dict.type.priority_level"/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="预期完成时间" prop="estimatedTime">
|
||||||
|
<el-date-picker
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="editForm.estimatedTime"
|
||||||
|
type="date"
|
||||||
|
placeholder="请选择预期完成时间"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="需求来源" prop="source">
|
||||||
|
<el-select v-model="editForm.source" placeholder="未设置" clearable>
|
||||||
|
<simple-options :options="dict.type.project_source"/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="需求类型" prop="type">
|
||||||
|
<el-select v-model="editForm.type" placeholder="未设置" clearable>
|
||||||
|
<simple-options :options="dict.type.project_type"/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="版本" prop="version">
|
||||||
|
<el-input v-model="editForm.version" placeholder="请输入版本"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-aside>
|
||||||
|
</el-container>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="editOpen = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="editSubmitForm">确 定</el-button>
|
||||||
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {addProject, delProject, getProjectList, managerList} from "@/api/test/project";
|
import {addProject, delProject, getProjectDetail, getProjectList, managerList} from "@/api/test/project";
|
||||||
import SimpleOptions from "@/components/FormItem/option/SimpleOptions.vue";
|
import SimpleOptions from "@/components/FormItem/option/SimpleOptions.vue";
|
||||||
import {delCase} from "@/api/test/case";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'project',
|
name: 'project',
|
||||||
@@ -189,6 +254,13 @@ export default {
|
|||||||
dicts: ['priority_level', 'project_source', 'project_type', 'status'],
|
dicts: ['priority_level', 'project_source', 'project_type', 'status'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
priorityColor: {
|
||||||
|
P0: 'danger', // 红色
|
||||||
|
P1: 'warning', // 黄色
|
||||||
|
P2: 'info', // 蓝色
|
||||||
|
P3: 'success', // 绿色
|
||||||
|
p4: 'success'
|
||||||
|
},
|
||||||
statusCounts: {
|
statusCounts: {
|
||||||
all: 0,
|
all: 0,
|
||||||
notStarted: 0,
|
notStarted: 0,
|
||||||
@@ -214,11 +286,14 @@ export default {
|
|||||||
activeTab: 'all',
|
activeTab: 'all',
|
||||||
total: 0,
|
total: 0,
|
||||||
list: [],
|
list: [],
|
||||||
|
title: '',
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
loading: false,
|
loading: false,
|
||||||
submitLoading: false,
|
submitLoading: false,
|
||||||
//新增弹窗
|
//新增弹窗
|
||||||
addOpen: false,
|
addOpen: false,
|
||||||
|
//编辑弹窗
|
||||||
|
editOpen: false,
|
||||||
managerList: [],
|
managerList: [],
|
||||||
queryParams: {
|
queryParams: {
|
||||||
serialNumber: '',
|
serialNumber: '',
|
||||||
@@ -241,7 +316,10 @@ export default {
|
|||||||
source: '',
|
source: '',
|
||||||
type: '',
|
type: '',
|
||||||
version: ''
|
version: ''
|
||||||
}
|
},
|
||||||
|
editForm: {
|
||||||
|
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@@ -357,6 +435,16 @@ export default {
|
|||||||
this.getList();
|
this.getList();
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
handleEdit(id) {
|
||||||
|
this.title = '编辑需求'
|
||||||
|
getProjectDetail(id).then((res) => {
|
||||||
|
this.editForm = res.data
|
||||||
|
this.editOpen = true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
editSubmitForm() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user