This commit is contained in:
2023-08-15 17:15:52 +08:00
parent 60500ffe4f
commit 011506561d
7 changed files with 148 additions and 22 deletions

View File

@@ -74,18 +74,10 @@
</template>
<!-- 节点图标插槽 -->
<template #icon="props">
<template v-if="props.node.level === '1'">
[被测件]
</template>
<template v-if="props.node.level === '2'">
[]
</template>
<template v-if="props.node.level === '3'">
[]
</template>
<template v-if="props.node.level === '4'">
[]
</template>
<template v-if="props.node.level === '1'"> [被测件] </template>
<template v-if="props.node.level === '2'"> [] </template>
<template v-if="props.node.level === '3'"> [] </template>
<template v-if="props.node.level === '4'"> [] </template>
</template>
</a-tree>
</div>
@@ -163,12 +155,13 @@ const treeRef = ref()
const { treeData, currentNode } = storeToRefs(treeDataStore)
const projectInfo = ref({ ...route.query })
const projectId = ref(route.query.id)
// 初始化树状数据
onMounted(async () => {
treeDataStore.initTreeData(projectId.value)
})
/// 点击树状节点-参数1:节点数组参数2:树node对象
/// 点击树状节点-参数1:节点数组参数2:树node对象 - 添加双击处理方式
const pointNode = (value, data) => {
console.log(data.node)
if (data.node.level === "0") {
router.push({ name: "round", query: { ...projectInfo.value, key: data.node.key } })
}
@@ -195,7 +188,6 @@ const loadMore = (nodeData) => {
if (nodeData.level == "0") {
return new Promise(async (resolve) => {
const res = await projectApi.getDutInfo(projectInfo.value.id, nodeData.key, nodeData.level)
// ~~~~~~~~~~~~~注意这里res和res.data反正nodeData要返回数组~~~~~~~~~~~~~~~~~
nodeData.children = res.data
resolve()
})

View File

@@ -24,6 +24,62 @@ const useTreeDataStore = defineStore("treeDataStore", {
this.treeData = roundData.data
this.originTreeData = roundData.data
},
// 新增删除dut后更新树状显示
async updateDutTreeData(data, projrctId) {
console.log(data);
let temp = data.key.split("-")
temp.pop(-1)
let roundKey = temp[0]
const nodeKey = temp.join("-")
const res = await projectApi.getDutInfo(projrctId, nodeKey, "0")
this.treeData[roundKey].children = res.data
},
// 新增删除designDemand后tree显示
async updateDesignDemandTreeData(data, projrctId) {
let temp = data.key.split("-")
temp.pop(-1)
let roundKey = temp[0]
let dutKey = temp[1]
const nodeKey = temp.join("-")
const res = await projectApi.getDemandInfo(projrctId, nodeKey, "1")
this.treeData[roundKey].children[dutKey].children = res.data
},
// 新增删除testDemand后tree显示
async updateTestDemandTreeData(data, projrctId) {
let temp = data.key.split("-")
temp.pop(-1)
let roundKey = temp[0]
let dutKey = temp[1]
let designKey = temp[2]
const nodeKey = temp.join("-")
const res = await projectApi.getTestInfo(projrctId, nodeKey, "2")
this.treeData[roundKey].children[dutKey].children[designKey].children = res.data
},
// 新增删除case后tree显示
async updateCaseTreeData(data, projrctId) {
let temp = data.key.split("-")
temp.pop(-1)
let roundKey = temp[0]
let dutKey = temp[1]
let designKey = temp[2]
let testKey = temp[3]
const nodeKey = temp.join("-")
const res = await projectApi.getCaseInfo(projrctId, nodeKey, "3")
this.treeData[roundKey].children[dutKey].children[designKey].children[testKey].children = res.data
},
// 新增删除problem后tree显示
async updateProblemTreeData(data, projrctId) {
let temp = data.key.split("-")
temp.pop(-1)
let roundKey = temp[0]
let dutKey = temp[1]
let designKey = temp[2]
let testKey = temp[3]
let caseKey = temp[4]
const nodeKey = temp.join("-")
const res = await projectApi.getProblemInfo(projrctId, nodeKey, "4")
this.treeData[roundKey].children[dutKey].children[designKey].children[testKey].children[caseKey].children = res.data
},
setCurrentNode(nodeKey) {
this.currentNode = nodeKey
},

View File

@@ -11,6 +11,8 @@
import { ref } from "vue"
import { useRoute, useRouter } from "vue-router"
import problemApi from "@/api/project/problem"
import { useTreeDataStore } from "@/store"
const treeDataStore = useTreeDataStore()
const route = useRoute()
const router = useRouter()
const roundNumber = route.query.key.split("-")[0]
@@ -18,11 +20,25 @@ const dutNumber = route.query.key.split("-")[1]
const designDemandNumber = route.query.key.split("-")[2]
const testDemandNumber = route.query.key.split("-")[3]
const caseNumber = route.query.key.split("-")[4]
const projectId = ref(route.query.id)
const crudOptions = ref({
api: problemApi.getProblemList,
add: { show: true, api: problemApi.save },
edit: { show: true, api: problemApi.update },
delete: { show: true, api: problemApi.delete },
afterAdd: (res) => {
console.log(res);
let id = projectId.value
treeDataStore.updateProblemTreeData(res.data, id)
},
afterEdit: (res) => {
let id = projectId.value
treeDataStore.updateProblemTreeData(res.data, id)
},
afterDelete: (res, record) => {
let id = projectId.value
treeDataStore.updateProblemTreeData(record, id)
},
parameters: {
projectId: route.query.id,
round: roundNumber,

View File

@@ -11,18 +11,33 @@
import { ref } from "vue"
import { useRoute, useRouter } from "vue-router"
import testDemandApi from "@/api/project/testDemand"
import { useTreeDataStore } from "@/store"
const treeDataStore = useTreeDataStore()
const route = useRoute()
const router = useRouter()
// 根据传参获取key分别为轮次、设计需求的key
const roundNumber = route.query.key.split("-")[0]
const dutNumber = route.query.key.split("-")[1]
const designDemandNumber = route.query.key.split("-")[2]
const projectId = ref(route.query.id)
// crud组件
const crudOptions = ref({
api: testDemandApi.getTestDemandList,
add: { show: true ,api:testDemandApi.save},
edit: { show: true, api: testDemandApi.update },
delete: { show: true,api:testDemandApi.delete },
afterAdd: (res) => {
let id = projectId.value
treeDataStore.updateTestDemandTreeData(res.data, id)
},
afterEdit: (res) => {
let id = projectId.value
treeDataStore.updateTestDemandTreeData(res.data, id)
},
afterDelete: (res, record) => {
let id = projectId.value
treeDataStore.updateTestDemandTreeData(record, id)
},
parameters: {
projectId: route.query.id,
round: roundNumber,

View File

@@ -11,16 +11,32 @@
import { ref } from "vue"
import { useRoute, useRouter } from "vue-router"
import designDemandApi from "@/api/project/designDemand"
import { useTreeDataStore } from "@/store"
const treeDataStore = useTreeDataStore()
const route = useRoute()
const router = useRouter()
const roundNumber = route.query.key.split("-")[0]
const dutNumber = route.query.key.split("-")[1]
const projectId = ref(route.query.id)
// crud组件
const crudOptions = ref({
api: designDemandApi.getDesignDemandList,
add: { show: true ,api: designDemandApi.save},
add: { show: true, api: designDemandApi.save },
edit: { show: true, api: designDemandApi.editDesignDemand },
delete: { show: true,api: designDemandApi.delete },
delete: { show: true, api: designDemandApi.delete },
// 处理添加后函数
afterAdd: (res) => {
let id = projectId.value
treeDataStore.updateDesignDemandTreeData(res.data, id)
},
afterEdit: (res) => {
let id = projectId.value
treeDataStore.updateDesignDemandTreeData(res.data, id)
},
afterDelete: (res, record) => {
let id = projectId.value
treeDataStore.updateDesignDemandTreeData(record, id)
},
parameters: {
projectId: route.query.id,
round: roundNumber,

View File

@@ -45,19 +45,34 @@
import { ref } from "vue"
import { useRoute, useRouter } from "vue-router"
import dutApi from "@/api/project/dut"
import { useTreeDataStore } from "@/store"
const treeDataStore = useTreeDataStore()
const route = useRoute()
const router = useRouter()
const roundNumber = route.query.key.split("-")[0]
const projectId = ref(route.query.id)
// crud组件
const crudOptions = ref({
api: dutApi.getDutList,
add: { show: true, api: dutApi.save,text:"新增被测件" },
edit: { show: true, api: dutApi.update,text:"编辑被测件" },
add: { show: true, api: dutApi.save, text: "新增被测件" },
// 处理添加后函数
afterAdd: (res) => {
let id = projectId.value
treeDataStore.updateDutTreeData(res.data, id)
},
afterEdit: (res) => {
let id = projectId.value
treeDataStore.updateDutTreeData(res.data, id)
},
afterDelete: (res, record) => {
let id = projectId.value
treeDataStore.updateDutTreeData(record, id)
},
edit: { show: true, api: dutApi.update, text: "编辑被测件" },
delete: { show: true, api: dutApi.delete },
parameters: {
projectId: route.query.id,
round: roundNumber,
round: roundNumber
},
operationWidth: 500,
showIndex: false,
@@ -68,7 +83,7 @@ const crudOptions = ref({
operationColumnAlign: "center",
formOption: {
viewType: "drawer",
width: 600,
width: 600
}
})
const beiceType = [

View File

@@ -11,18 +11,34 @@
import { ref } from "vue"
import { useRoute, useRouter } from "vue-router"
import caseApi from "@/api/project/case"
import { useTreeDataStore } from "@/store"
const treeDataStore = useTreeDataStore()
const route = useRoute()
const router = useRouter()
const roundNumber = route.query.key.split("-")[0]
const dutNumber = route.query.key.split("-")[1]
const designDemandNumber = route.query.key.split("-")[2]
const testDemandNumber = route.query.key.split("-")[3]
const projectId = ref(route.query.id)
// crud设置
const crudOptions = ref({
api: caseApi.getCaseList,
add: { show: true, api: caseApi.save },
edit: { show: true, api: caseApi.update },
delete: { show: true, api: caseApi.delete },
// 处理新增删除后树状图显示
afterAdd: (res) => {
let id = projectId.value
treeDataStore.updateCaseTreeData(res.data, id)
},
afterEdit: (res) => {
let id = projectId.value
treeDataStore.updateCaseTreeData(res.data, id)
},
afterDelete: (res, record) => {
let id = projectId.value
treeDataStore.updateCaseTreeData(record, id)
},
parameters: {
projectId: route.query.id,
round: roundNumber,