From efce40899082aa7543db91e9f4c32736b365b5c0 Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Tue, 18 Jul 2023 16:09:37 +0800 Subject: [PATCH] 2023-7-18 --- src/views/budget/components/addPoint.vue | 86 +++++++++++++----------- 1 file changed, 47 insertions(+), 39 deletions(-) diff --git a/src/views/budget/components/addPoint.vue b/src/views/budget/components/addPoint.vue index de0265c..784bd43 100644 --- a/src/views/budget/components/addPoint.vue +++ b/src/views/budget/components/addPoint.vue @@ -6,12 +6,14 @@ :visible.sync="isShow" direction="rtl" > - @@ -30,14 +32,18 @@ @on-selection-change="selectionChange" >
- +
@@ -63,17 +69,17 @@ export default { { label: "指标名称", prop: "target.name", - minWidth: 200 + minWidth: 200, }, { label: "半年(程)指标值", prop: "target.half_target", - width: 180 + width: 180, }, { label: "全年(程)指标值", prop: "target.year_target", - width: 180 + width: 180, }, { label: "创建时间", @@ -204,8 +210,7 @@ export default { }, ], selections: [], //已选择的全部计划 - - + selectedIds: [], }; }, methods: { @@ -242,11 +247,7 @@ export default { }, selectionChange(selection) { - this.selections = Array.from( - new Set( - selection.map((item) => item.id) - ) - ); + this.selections = Array.from(new Set(selection.map((item) => item.id))); console.log(this.selections); }, @@ -262,13 +263,18 @@ export default { this.spanArr1 = []; try { const res = await pointIndex(this.pointSelect); - let selectedIds = Array.from(new Set(this.list.map((item) => item.target_id))); - this.points = res.data.map(item => { + let selectedIds = Array.from( + new Set(this.list.map((item) => item.target_id)) + ); + this.selectedIds = selectedIds; + this.points = res.data.map((item) => { return { ...item, - _checked: !!selectedIds.find(i => i === item.id) || !!this.selections.find(i => i === item.id), - _disabled: !!selectedIds.find(i => i === item.id), - } + _checked: + !!selectedIds.find((i) => i === item.id) || + !!this.selections.find((i) => i === item.id), + _disabled: !!selectedIds.find((i) => i === item.id), + }; }); this.pointTotal = res.total; @@ -310,19 +316,21 @@ export default { }, submit() { - Promise.all( - this.selections.map((target_id) => { - return save({ + let promiseAll = []; + this.selections.forEach((target_id) => { + if (this.selectedIds.indexOf(target_id) !== -1) return; + promiseAll.push( + save({ target_id, plan_id: this.getPlanId(), - }); - }) - ).then((res) => { + }) + ); + }); + Promise.all(promiseAll).then((res) => { this.getList(); this.isShowModal = false; }); }, - }, computed: {}, watch: { @@ -333,15 +341,15 @@ export default { } }, isShowModal(val) { - if(val){ + if (val) { this.getPoints(); - }else{ + } else { this.selections = []; resetSelect(this.pointSelect); this.points = []; this.pointTotal = 0; } - } + }, }, };