round完成

This commit is contained in:
2023-06-28 21:02:31 +08:00
parent 1063053510
commit 67cb0df5b9
12 changed files with 198 additions and 35 deletions

View File

@@ -7,7 +7,7 @@ export default {
*/
getNoticeList(params = {}) {
return request({
url: "common/getNoticeList",
url: "system/getNoticeList",
method: "get",
params
})

View File

@@ -11,5 +11,16 @@ export default {
method: "get",
params
})
},
/**
* 传入id以及data编辑设计需求
* @returns 成功编辑或失败
*/
editDesignDemand(id, data = {}) {
return request({
url: `project/editDesignDemand/` + id,
method: "put",
data
})
}
}

View File

@@ -10,5 +10,40 @@ export default {
method: "get",
params
})
},
/**
* 添加轮次
* @returns
*/
save(project_id, params = {}) {
return request({
url: "project/round/save",
method: "post",
data: params,
params: { project_id }
})
},
/**
* 更新轮次
* @returns
*/
update(id, data = {}) {
return request({
url: "project/round/update/" + id,
method: "put",
data
})
},
/**
* 更新轮次
* @returns
*/
delete(project_id, data = {}) {
return request({
url: "project/round/delete",
method: "delete",
data,
params: { project_id }
})
}
}

View File

@@ -90,5 +90,16 @@ export default {
method: "put",
data
})
}
},
/**
* 请求所有user信息
* @returns
*/
getUserDict(params = {}) {
return request({
url: "system/user/dict",
method: "get",
params
})
},
}

View File

@@ -10,5 +10,38 @@ export default {
method: "get",
params
})
}
},
/**
* 添加用户
* @returns
*/
save(params = {}) {
return request({
url: "testmanage/project/save",
method: "post",
data: params
})
},
/**
* 更新数据
* @returns
*/
update(id, data = {}) {
return request({
url: "testmanage/project/update/" + id,
method: "put",
data
})
},
/**
* 删除项目
* @returns
*/
delete(data) {
return request({
url: "testmanage/project/delete",
method: "delete",
data
})
},
}

View File

@@ -41,17 +41,23 @@
@click="() => handleRoundAddClick(nodeData)"
/>
</a-tooltip>
<a-tooltip content="点击删除轮次"
><IconMinus
style="
position: absolute;
right: 25px;
font-size: 12px;
top: 8px;
color: #3370ff;
"
@click="() => handleRoundDelClick(nodeData)"
/></a-tooltip>
<a-tooltip content="点击删除轮次">
<a-popconfirm
content="确定要删除该轮次吗?"
position="bottom"
@ok="handleRoundDelClick(nodeData)"
>
<IconMinus
style="
position: absolute;
right: 25px;
font-size: 12px;
top: 8px;
color: #3370ff;
"
/>
</a-popconfirm>
</a-tooltip>
<a-tooltip content="点击编辑当前轮次"
><IconEdit
style="
@@ -82,6 +88,7 @@
:column="roundColumn"
:options="roundOption"
width="800px"
:submit="handleRoundSubmit"
></ma-form-modal>
</template>
@@ -92,10 +99,12 @@ import PageLayout from "@/layout/page-layout.vue"
import MaFormModal from "@/components/ma-form-modal/index.vue"
import projectApi from "@/api/project/project"
import roundApi from "@/api/project/round"
import { Message } from "@arco-design/web-vue"
import { useRoute } from "vue-router"
import { useRouter } from "vue-router"
import { useTreeDataStore } from "@/store"
import { storeToRefs } from "pinia"
import dayjs from "dayjs"
//~~~~ 缩小后的menu菜单
const drawerVisible = ref(false)
provide("toggleDrawerMenu", () => {
@@ -139,7 +148,7 @@ const { treeData, currentNode } = storeToRefs(treeDataStore)
const projectInfo = ref({ ...route.query })
const projectId = ref(route.query.id)
onMounted(async () => {
treeDataStore.initTreeData(projectId)
treeDataStore.initTreeData(projectId.value)
})
/// 点击树状节点-参数1:节点数组参数2:树node对象
const pointNode = (value, data) => {
@@ -209,10 +218,17 @@ const maFormModalRef = ref()
const title = ref("")
/// 点击新增轮次按钮
const handleRoundAddClick = (nodeData) => {
// 这里是文档写错了
console.log(maFormModalRef.value.form);
// 这里是文档写错了,调用form是里面组件绑定的数据
maFormModalRef.value.form = {}
maFormModalRef.value.open({})
maFormModalRef.value.open({
beginTime: dayjs().format("YYYY-MM-DD"),
grade: "1",
key: `${treeDataStore.treeData.length}`,
name: `${treeDataStore.treeData.length + 1}轮测试`,
ident: `${route.query.ident}-R${treeDataStore.treeData.length + 1}`,
project: projectId.value
})
title.value = "新增轮次"
}
/// 点击编辑轮次按钮
const handleRoundEditClick = async (nodeData) => {
@@ -224,8 +240,35 @@ const handleRoundEditClick = async (nodeData) => {
title.value = `编辑轮次:${data.data.name}`
}
/// 点击删除轮次按钮
const handleRoundDelClick = () => {
console.log("删除轮次")
const handleRoundDelClick = async (value) => {
try {
await roundApi.delete(projectId.value, value)
Message.success("删除成功!")
treeDataStore.resetTreeData(projectId.value)
} catch {
Message.error("删除失败!")
}
}
/// Ma-form-Modal的提交按钮
const handleRoundSubmit = async (value) => {
console.log(value)
if (title.value.slice(0, 1) === "编") {
try {
await roundApi.update(value.id, value)
Message.success("编辑成功!")
} catch {
Message.error("编辑失败!")
}
}
if (title.value.slice(0, 1) === "新") {
try {
await roundApi.save(projectId.value, value)
Message.success("新增成功!")
treeDataStore.resetTreeData(projectId.value)
} catch {
Message.error("新增失败!")
}
}
}
/// 设置轮次弹窗的列信息
const roundColumn = ref([

View File

@@ -70,7 +70,7 @@ const useUserStore = defineStore("user", {
return loginAPI
.login(form)
.then((res) => {
if (res.success) {
if (res.data.success === true) {
this.setToken(res.data.token)
return true
} else {

View File

@@ -14,10 +14,16 @@ const useTreeDataStore = defineStore("treeDataStore", {
async initTreeData(projectId) {
if (this.treeData.length === 0) {
const roundData = await projectApi.getRoundInfo(projectId)
this.treeData = roundData
this.originTreeData = roundData
this.treeData = roundData.data
this.originTreeData = roundData.data
}
},
// 用于新增轮次后显示
async resetTreeData(projectId) {
const roundData = await projectApi.getRoundInfo(projectId)
this.treeData = roundData.data
this.originTreeData = roundData.data
},
setCurrentNode(nodeKey) {
this.currentNode = nodeKey
}

View File

@@ -29,6 +29,7 @@ import { reactive, ref, onMounted } from "vue"
import MaTreeSlider from "@/components/ma-treeSlider/index.vue"
import userApi from "@/api/system/user"
import user from "@/api/system/user"
import { Message } from "@arco-design/web-vue"
// 切换状态按钮
const changeStatus = (e, id) => {
console.log("当前值:", e)
@@ -183,9 +184,24 @@ const crudOptions = reactive({
viewType: "modal"
// isFull: true
},
// 用户点击编辑/删除前的hook
beforeOpenEdit: (record) => {
if (record.id === 1) {
Message.error("创始人不可编辑,请关闭窗口!")
return false
}
return true
},
beforeDelete: (ids) => {
if (ids.includes(1)) {
Message.error("创始人不可删除")
return false
}
return true
}
})
const crudColumns = reactive([
{ title: "ID", dataIndex: "id", addDisplay: false, editDisplay: false, width: 50, hide: false, search: true },
{ title: "ID", dataIndex: "id", addDisplay: false, editDisplay: false, width: 50, hide: false },
{
title: "名称",
align: "center",
@@ -235,7 +251,7 @@ const crudColumns = reactive([
},
{
title: "注册时间",
dataIndex: "created_at",
dataIndex: "create_datetime",
align: "center",
width: 180,
addDisplay: false,

View File

@@ -100,9 +100,11 @@ const handleSubmit = async ({ values, errors }) => {
await userStore.login(form)
const { redirect, ...otherQuery } = router.currentRoute.value.query
router.push({
name: redirect || "Workplace"
name: redirect || "Workplace",
query:{
...otherQuery // 将退出时的查询参数放入,这样就不会错误
}
})
Message.success("登录成功,等待跳转")
} catch (err) {
errorMessage.value = err.message
} finally {

View File

@@ -26,18 +26,20 @@ const crudOptions = ref({
showIndex: false,
rowSelection: { showCheckedAll: true },
add: { show: true },
edit: { show: true },
edit: { show: true, api: designDemandApi.editDesignDemand },
delete: { show: true },
searchColNumber: 3,
tablePagination: true,
operationColumn: true,
operationColumnAlign:'center',
formOption: {
width: 1200
width: 1200,
}
})
const crudColumns = ref([
{
title: "ID",
align:'center',
width: 50,
dataIndex: "id",
search: true,
@@ -46,6 +48,7 @@ const crudColumns = ref([
},
{
title: "标识",
align:'center',
width: 120,
dataIndex: "ident",
search: true,
@@ -54,6 +57,7 @@ const crudColumns = ref([
},
{
title: "需求名称",
align:'center',
width: 150,
dataIndex: "name",
search: true,
@@ -63,6 +67,7 @@ const crudColumns = ref([
{
title: "需求类型",
width: 150,
align:'center',
dataIndex: "demandType",
formType: "radio",
search: true,
@@ -73,6 +78,7 @@ const crudColumns = ref([
{
title: "需求描述",
dataIndex: "description",
hide:true,
width: 300,
formType: "editor",
height: 300

View File

@@ -23,9 +23,9 @@ const crudRef = ref()
const crudOptions = ref({
rowSelection: { showCheckedAll: true },
api: projectApi.getPageList,
add: { show: true },
edit: { show: true },
delete: { show: true },
add: { show: true,api: projectApi.save},
edit: { show: true,api: projectApi.update},
delete: { show: true ,api:projectApi.delete},
searchColNumber: 3,
tablePagination: true,
operationColumn: true,
@@ -193,7 +193,7 @@ const crudColumns = ref([
search: true,
commonRules: [{ required: true, message: "责任人必选" }],
formType: "select",
dict: { url: "system/user/index", props: { label: "name", value: "name" }, translation: true }
dict: { url: "system/user/list", props: { label: "name", value: "name" }, translation: true }
},
{
title: "成员",
@@ -202,7 +202,7 @@ const crudColumns = ref([
search: true,
formType: "select",
multiple: true,
dict: { url: "system/user/index", props: { label: "name", value: "name" }, translation: true },
dict: { url: "system/user/list", props: { label: "name", value: "name" }, translation: true },
commonRules: [{ required: true, message: "成员至少选择一个" }]
},
{
@@ -213,7 +213,7 @@ const crudColumns = ref([
commonRules: [{ required: true, message: "关键等级必填" }],
search: true,
formType: "radio",
dict: { name: "security_level", props: { label: "value", value: "key" } }
dict: { name: "security_level", props: { label: "title", value: "key" } }
},
{
title: "测试级别",