diff --git a/src/components/model-placeholder/index.vue b/src/components/model-placeholder/index.vue index 4862109..540ae78 100644 --- a/src/components/model-placeholder/index.vue +++ b/src/components/model-placeholder/index.vue @@ -78,7 +78,7 @@ function otherLightModels(data) { engine.engine?.setModelColor( i.codeData, i.color, - 0.6 + 0.2 ); }) } diff --git a/src/pages/progress/index.vue b/src/pages/progress/index.vue index 44ce64d..e5130e2 100644 --- a/src/pages/progress/index.vue +++ b/src/pages/progress/index.vue @@ -122,12 +122,12 @@ - 序号全名称清单编号清单名称单位合同数量合同金额合同金额不含税累计完成数量进度 + 序号全名称清单编号清单名称单位合同数量合同金额合同金额不含税累计完成数量累计完成金额累计完成金额不含税进度 - {{ r.no }}{{ r.fullName }}{{ r.workCode }}{{ r.name }}{{ r.workUnit }}{{ formatNumber(r.meteringNum,2) }}{{ formatMoney(r.meteringAmt) }}{{ formatMoney(r.meteringNotaxAmt) }}{{ r.totalNum }}{{ proportion(r.meteringNum,r.totalNum) }} + {{ r.no }}{{ r.fullName }}{{ r.workCode }}{{ r.name }}{{ r.workUnit }}{{ formatNumber(r.meteringNum,2) }}{{ formatMoney(r.meteringAmt) }}{{ formatMoney(r.meteringNotaxAmt) }}{{ r.totalNum }}{{formatMoney(r.totalAmt) }}{{ formatMoney(r.totalNotaxAmt) }}{{ proportion(r.meteringAmt,r.totalAmt) }} @@ -240,12 +240,13 @@ const baselineDate = ref(todayISODate()); const baselineOverallPercent = ref(0); const cutoffDate = ref(todayISODate()); const cutoffDateDraft = ref(cutoffDate.value); +const selectedPeriod = computed(() => cutoffDateDraft.value || cutoffDate.value || todayISODate()); const percentFilters = reactive({ all: false, p0: false, p0_50: false, p50_100: false, p100: false }); const filteredProgressCodeData = ref([]); const filteredProgressColorParams = ref([]); const percentColorMap = { - p0: "#6E7D96", + p0: "#B0B8C4", p0_50: "#D9363E", p50_100: "#156CFF", p100: "#2F8F2F", @@ -256,7 +257,7 @@ const visibleTreeRows = computed(() => { const walk = (node, level) => { const leaf = node.isLeaf === true; const open = expanded.value.has(node.id); - rows.push({ id: node.id, name: node.name, level, leaf, open, createDate: node.createDate, projectId: node.projectId }); + rows.push({ id: node.id, name: node.name, level, leaf, open, createDate: selectedPeriod.value, projectId: node.projectId }); if (!leaf && open && node.children) { node.children.forEach((c) => walk(c, level + 1)); } @@ -299,9 +300,10 @@ const progressRows = computed(() => { meteringNotaxAmt: item.meteringNotaxAmt || 0, meteringNum: item.meteringNum || 0, totalNum: item.totalNum || '', - doneQty: item.doneQty || 0, - doneAmt: item.doneAmt || 0, - cumDoneQty: item.cumDoneQty || 0, + totalAmt: item.totalAmt ?? item.actAmt ?? 0, + totalNotaxAmt: item.totalNotaxAmt ?? item.actNotaxAmt ?? 0, + thisNum: item.thisNum || 0, + thisAmt: item.thisAmt || 0, })); }); @@ -368,8 +370,9 @@ function findNode(nodes, id) { onMounted(async() => { await loadWbsTree(); window.addEventListener("click", closeContextMenu); - const result = await progressApi.calculateProgress(); - taskId.value = result.taskId + const result = await progressApi.calculateProgress(selectedPeriod.value); + console.log(888888,result) + // taskId.value = result.taskId }); function todayISODate() { @@ -461,14 +464,16 @@ function buildModelCodeData(list) { } async function refreshFilteredProgressCodeData() { - if (!taskId.value) { - filteredProgressCodeData.value = []; - filteredProgressColorParams.value = []; - modelRef.value?.cancelLightModels(); - return; - } + // if (!taskId.value) { + // filteredProgressCodeData.value = []; + // filteredProgressColorParams.value = []; + // modelRef.value?.cancelLightModels(); + // return; + // } try { - const response = await progressApi.getProgress(taskId.value); + // const response = await progressApi.getProgress(taskId.value); + const response = await progressApi.getProgress(selectedPeriod.value); + console.log(77777,response) const items = extractProgressItems(response); const enabledKeys = ["p0", "p0_50", "p50_100", "p100"].filter((k) => percentFilters[k]); const activeKeys = percentFilters.all ? ["p0", "p0_50", "p50_100", "p100"] : enabledKeys; @@ -512,19 +517,22 @@ async function refreshFilteredProgressCodeData() { function applyCutoffDate() { cutoffDate.value = cutoffDateDraft.value || cutoffDate.value || todayISODate(); + const result = progressApi.calculateProgress(selectedPeriod.value); + console.log(2121,result) } // 计算比例:count / allCount,并显示百分比 -function proportion(count, allCount) { +function proportion(allCount, count) { if (count==="" || allCount==="") return "" // 防止除以 0 报错 - if (!allCount || allCount === 0) return `0 / 0 (0%)` + if (!allCount || allCount === 0) return `0%` // 计算百分比(保留2位小数) let percent = ((count / allCount) * 100).toFixed(2) // 返回格式:5 / 10 (50.00%) - return `${count} / ${allCount} (${percent}%)` + // return `${count} / ${allCount} (${percent}%)` + return `${percent}%` } async function applyAllExclusive(key, checked) { @@ -605,11 +613,11 @@ async function onTreeRowClick(row) { } if (row.leaf) { selectedStructureId.value = row.id; - await loadProgressData(row.id, row.createDate); + await loadProgressData(row.id, selectedPeriod.value); } else { toggleTreeExpand(row); progressData.value = [] - progressData.value = await progressApi.findActAmtByPositionId(row.projectId, row.id, row.createDate); + progressData.value = await progressApi.findActAmtByPositionId(row.projectId, row.id, selectedPeriod.value); } } @@ -636,7 +644,7 @@ function addPartToBindingList(row) { if (!row?.id) return; const exists = partList.value.some((item) => item.id === row.id); if (exists) return; - partList.value.push({ id: row.id, createDate: row.createDate }); + partList.value.push({ id: row.id, createDate: selectedPeriod.value }); } function onAddComponent() { @@ -664,7 +672,7 @@ async function onViewComponent() { function applyViewModalData(row, data) { const partId = row?.id; if (!partId) return; - viewPartList.value = [{ id: partId, createDate: row?.createDate }]; + viewPartList.value = [{ id: partId, createDate: selectedPeriod.value }]; const mapped = (data || []) .map((item) => toBindingCodeItem(item)) .filter(Boolean); diff --git a/src/service/api/progress.js b/src/service/api/progress.js index c25e287..2a504dc 100644 --- a/src/service/api/progress.js +++ b/src/service/api/progress.js @@ -56,12 +56,12 @@ export const progressApi = { }); }, - calculateProgress() { - return get("/api/bim/progressData", {}).then((res) => res); + calculateProgress(date) { + return get("/api/bim/progressData", { date }).then((res) => res); }, - getProgress(taskId) { - return get(`/api/bim/progressData/${taskId}`).then((res) => res); + getProgress(date) { + return get("/api/bim/progressData/result",{ date }).then((res) => res); }, getCodeWbsMappings() { @@ -71,4 +71,3 @@ export const progressApi = { }); }, }; -