Commit ede15671 authored by “yiyousong”'s avatar “yiyousong”

perf: 优化业务事项关联

parent 7c632761
...@@ -5,7 +5,11 @@ ...@@ -5,7 +5,11 @@
<div class="titel">站点业务列表</div> <div class="titel">站点业务列表</div>
<div class="header-bottom pdr6"> <div class="header-bottom pdr6">
<div class="left-btn"> <div class="left-btn">
<a-button type="danger" @click="batchDelSiteBusiness"> <a-button
type="danger"
@click="batchDelSiteBusiness"
:loading="delSiteBusinessLoading"
>
批量解除 批量解除
</a-button> </a-button>
</div> </div>
...@@ -32,6 +36,7 @@ ...@@ -32,6 +36,7 @@
size="middle" size="middle"
:scroll="{ y: 550 }" :scroll="{ y: 550 }"
:row-selection="{ :row-selection="{
selectedRowKeys: siteBusinessRowKeys,
onChange: onSelectChange, onChange: onSelectChange,
}" }"
@changePagination="getBusinessMatterData" @changePagination="getBusinessMatterData"
...@@ -271,7 +276,7 @@ import { ...@@ -271,7 +276,7 @@ import {
} from "@/services/business"; } from "@/services/business";
import local from "@/utils/local"; import local from "@/utils/local";
import YTable from "@/components/YTable.vue"; import YTable from "@/components/YTable.vue";
import { uniqueObjArray } from "@/utils";
export default { export default {
components: { YTable }, components: { YTable },
data() { data() {
...@@ -352,7 +357,9 @@ export default { ...@@ -352,7 +357,9 @@ export default {
], ],
}, },
selectedRowKeys: [], selectedRowKeys: [],
siteBusinessRowKeys: [],
isCorrelation: false, isCorrelation: false,
delSiteBusinessLoading: false,
isUnbound: false, isUnbound: false,
visible: false, visible: false,
isUnboundAll: false, //批量解除框 isUnboundAll: false, //批量解除框
...@@ -382,7 +389,7 @@ export default { ...@@ -382,7 +389,7 @@ export default {
created() { created() {
this.getDeptListData(); this.getDeptListData();
this.getBusinessMatterData(); this.getBusinessMatterData();
this.getMatterlistData(); // this.getMatterlistData();
this.getSiteBusinessData(); this.getSiteBusinessData();
this.getMatterSiteData(); this.getMatterSiteData();
}, },
...@@ -479,6 +486,9 @@ export default { ...@@ -479,6 +486,9 @@ export default {
// 站点关联业务列表搜索 // 站点关联业务列表搜索
async onSiteBusinessSearch() { async onSiteBusinessSearch() {
this.siteBusinessTable.page = 1; this.siteBusinessTable.page = 1;
this.businessMatterAll = [];
this.deleteDataIds = [];
this.siteBusinessRowKeys = [];
this.getBusinessMatterData(); this.getBusinessMatterData();
}, },
...@@ -513,14 +523,13 @@ export default { ...@@ -513,14 +523,13 @@ export default {
} else { } else {
str = this.unboundMatterData.map((v) => v.id).join(","); str = this.unboundMatterData.map((v) => v.id).join(",");
} }
// let arr = this.unboundMatterData.map((v) => v.id).join(",");
let res = await delBusinessMatter({ id: str, ...val }); let res = await delBusinessMatter({ id: str, ...val });
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
this.$message.success(msg); this.$message.success(msg);
this.isUnbound = false;
this.getBusinessMatterData(); this.getBusinessMatterData();
this.unboundMatterItem = []; this.handleCloseUnbound();
this.isUnbound = false;
} else { } else {
this.$message.error(msg); this.$message.error(msg);
} }
...@@ -533,14 +542,28 @@ export default { ...@@ -533,14 +542,28 @@ export default {
}, },
// 获取批量解除数据 // 获取批量解除数据
onSelectChange(key, row) { onSelectChange(key, rows) {
if (row.length > 0) { this.siteBusinessRowKeys = key;
this.businessMatterAll = row.map((v) => { this.businessMatterAll = uniqueObjArray(
return { [...this.businessMatterAll, ...rows],
siteBusinessId: v.siteBusinessId, "id"
siteBusinessName: v.siteBusinessName, ).filter((v) => {
}; return this.siteBusinessRowKeys.some((id) => v.id == id);
}); });
},
// 批量解除按钮
async batchDelSiteBusiness() {
if (this.businessMatterAll.length > 0) {
this.delSiteBusinessLoading = true;
this.deleteDataIds = [];
// this.businessMatterAll = this.businessMatterAll.map((v) => {
// return {
// id: v.id,
// siteBusinessId: v.siteBusinessId,
// siteBusinessName: v.siteBusinessName,
// };
// });
let arr = this.businessMatterAll.map((v) => v.siteBusinessId); let arr = this.businessMatterAll.map((v) => v.siteBusinessId);
let num = 0; let num = 0;
let getIds = async () => { let getIds = async () => {
...@@ -560,21 +583,13 @@ export default { ...@@ -560,21 +583,13 @@ export default {
} }
getIds(); getIds();
}; };
getIds(); await getIds();
} else {
this.businessMatterAll = [];
this.deleteDataIds = [];
}
},
// 批量解除按钮
batchDelSiteBusiness() {
if (this.businessMatterAll.length > 0) {
this.isUnboundAll = true; this.isUnboundAll = true;
} else { } else {
this.$message.warning("请先勾选数据"); this.$message.warning("请先勾选数据");
return; return;
} }
this.delSiteBusinessLoading = false;
}, },
// 批量解除确认 // 批量解除确认
...@@ -589,6 +604,8 @@ export default { ...@@ -589,6 +604,8 @@ export default {
this.getBusinessMatterData(); this.getBusinessMatterData();
this.isUnboundAll = false; this.isUnboundAll = false;
this.businessMatterAll = []; this.businessMatterAll = [];
this.deleteDataIds = [];
this.siteBusinessRowKeys = [];
} else { } else {
this.$message.error(msg); this.$message.error(msg);
} }
...@@ -597,13 +614,11 @@ export default { ...@@ -597,13 +614,11 @@ export default {
// 获取批量关联事项数据 // 获取批量关联事项数据
onRightSelectChange(key, data) { onRightSelectChange(key, data) {
this.selectedRowKeys = key; this.selectedRowKeys = key;
this.allCorrelationData = data.map((v) => { this.allCorrelationData = uniqueObjArray(
return { [...this.allCorrelationData, ...data],
matterId: v.matterId, "id"
matterName: v.matterName, ).filter((v) => {
siteId: v.siteId, return this.selectedRowKeys.some((id) => v.id == id);
siteName: v.siteName,
};
}); });
}, },
...@@ -619,6 +634,7 @@ export default { ...@@ -619,6 +634,7 @@ export default {
// 站点事项搜索 // 站点事项搜索
onSearchSiteMatter() { onSearchSiteMatter() {
this.siteMatterTable.page = 1; this.siteMatterTable.page = 1;
this.selectedRowKeys = [];
this.getMatterSiteData(); this.getMatterSiteData();
}, },
// 关联 // 关联
...@@ -628,14 +644,7 @@ export default { ...@@ -628,14 +644,7 @@ export default {
return; return;
} }
this.isCorrelation = true; this.isCorrelation = true;
this.allCorrelationData = [ this.allCorrelationData = [matter];
{
matterId: matter.matterId,
matterName: matter.matterName,
siteId: matter.siteId,
siteName: matter.siteName,
},
];
this.selectedRowKeys = [matter.id]; this.selectedRowKeys = [matter.id];
}, },
...@@ -655,7 +664,17 @@ export default { ...@@ -655,7 +664,17 @@ export default {
handleOk() { handleOk() {
this.$refs.formData.validate(async (valid) => { this.$refs.formData.validate(async (valid) => {
if (valid) { if (valid) {
let res = await addBatchSave(this.allCorrelationData); let arr = this.allCorrelationData.map((v) => {
return {
matterId: v.matterId,
matterName: v.matterName,
siteId: v.siteId,
siteName: v.siteName,
siteBusinessId: v.siteBusinessId,
siteBusinessName: v.siteBusinessName,
};
});
let res = await addBatchSave(arr);
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
this.$message.success(msg); this.$message.success(msg);
...@@ -671,8 +690,6 @@ export default { ...@@ -671,8 +690,6 @@ export default {
}, },
// 关闭关联对话框 // 关闭关联对话框
handleclose() { handleclose() {
// this.selectedRowKeys = [];
// this.allCorrelationData = [];
this.$refs.formData.resetFields(); this.$refs.formData.resetFields();
this.isCorrelation = false; this.isCorrelation = false;
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment