diff --git a/cdTMP/src/layout/project-layout.vue b/cdTMP/src/layout/project-layout.vue index cdfec8a..72260f3 100644 --- a/cdTMP/src/layout/project-layout.vue +++ b/cdTMP/src/layout/project-layout.vue @@ -74,18 +74,10 @@ @@ -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() }) diff --git a/cdTMP/src/store/project/treeData.js b/cdTMP/src/store/project/treeData.js index a13bf25..cde5875 100644 --- a/cdTMP/src/store/project/treeData.js +++ b/cdTMP/src/store/project/treeData.js @@ -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 }, diff --git a/cdTMP/src/views/project/case/index.vue b/cdTMP/src/views/project/case/index.vue index e779869..f7e7cb9 100644 --- a/cdTMP/src/views/project/case/index.vue +++ b/cdTMP/src/views/project/case/index.vue @@ -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, diff --git a/cdTMP/src/views/project/design-demand/index.vue b/cdTMP/src/views/project/design-demand/index.vue index f7cc1ab..8acf32d 100644 --- a/cdTMP/src/views/project/design-demand/index.vue +++ b/cdTMP/src/views/project/design-demand/index.vue @@ -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, diff --git a/cdTMP/src/views/project/dut/index.vue b/cdTMP/src/views/project/dut/index.vue index 07cd0c7..b8af0e2 100644 --- a/cdTMP/src/views/project/dut/index.vue +++ b/cdTMP/src/views/project/dut/index.vue @@ -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, diff --git a/cdTMP/src/views/project/round/index.vue b/cdTMP/src/views/project/round/index.vue index 08fb382..7d5fd72 100644 --- a/cdTMP/src/views/project/round/index.vue +++ b/cdTMP/src/views/project/round/index.vue @@ -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 = [ diff --git a/cdTMP/src/views/project/testDemand/index.vue b/cdTMP/src/views/project/testDemand/index.vue index 8c4f181..7023083 100644 --- a/cdTMP/src/views/project/testDemand/index.vue +++ b/cdTMP/src/views/project/testDemand/index.vue @@ -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,