Files
cmanager/src/views/manage/group/Dialog/cmpList.vue
2024-02-02 10:23:22 +08:00

277 lines
7.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<el-drawer
title="集团管理"
size="60%"
:visible.sync="visible"
append-to-body
@close="drawerClose"
>
<avue-crud
:option="option"
:data="data"
:page="page"
v-model="form"
@row-update="rowUpdate"
@row-save="rowSave"
@row-del="rowDel"
@current-change="currentChange"
@size-change="sizeChange"
@selection-change="selectionChange"
@search-change="searchChange"
@search-reset="searchReset"
@refresh-change="refreshChange"
>
<template slot="areaForm" slot-scope="{ disabled }">
<jl-city-cascader
:disabled="disabled"
v-model="form.area"
></jl-city-cascader>
</template>
<template slot="mainId" slot-scope="{ row }">
<span v-if="row.platformNo == mainId">主ID</span>
<!--当mainId==集团id时为主id-->
<span v-else>副ID</span>
</template>
<template slot="menuLeft">
<el-button @click="handleAddCmp" type="primary" size="small">
添加企业
</el-button>
</template>
<template slot="menu" slot-scope="{ row }">
<el-button
v-if="row.platformNo != mainId"
@click="setMainID(row.platformNo)"
type="text"
size="small"
>
设为主ID
</el-button>
<el-button
@click="removeCompany(row.platformNo)"
type="text"
size="small"
>
移除
</el-button>
</template>
<template slot="cityId" slot-scope="{ row }">
<span
>{{ cityId(row.cityId)[0] }}/{{ cityId(row.cityId)[1] }}/{{
cityId(row.cityId)[2]
}}</span
>
</template>
</avue-crud>
<div class="demo-drawer__footer">
<el-button type="primary" @click="submit" size="small" :loading="loading"
>提交</el-button
>
<el-button @click="reset" size="small">重置</el-button>
</div>
<add-company
ref="addCmp"
@success="success"
:parentData="data"
></add-company>
</el-drawer>
</template>
<script>
import {
getCompanysList,
setGroupMainId,
removeRelations,
} from "@/api/manage/group";
import addCompany from "./addCompany";
export default {
components: {
addCompany,
},
data() {
return {
visible: false,
data: [],
selectionList: [],
query: {},
form: {},
groupId: null, //集团id
plateformId: null, //集团的plateformId
groupName: "", //集团名称
mainId: null, //集团主ID
option: {
border: true,
index: true,
indexLabel: "序号",
labelWidth: 100,
selection: false,
align: "center",
editBtn: false,
delBtn: false,
addBtn: false,
column: [
{
label: "公司ID",
prop: "platformNo",
display: false,
},
{
label: "企业名称",
prop: "name",
searchSpan: 12,
rules: [
{
required: true,
message: "请输入企业名称",
trigger: "blur",
},
],
},
{
label: "地区",
prop: "cityId",
display: false,
slot: true,
},
{
label: "主副ID",
prop: "mainId",
slot: true,
},
],
},
page: {
currentPage: 1,
pageSize: 10,
total: 0,
},
};
},
methods: {
currentChange(current) {
this.page.currentPage = current;
this.onLoad(this.page);
},
sizeChange(size) {
this.page.pageSize = size;
this.onLoad(this.page);
},
refreshChange() {
this.onLoad(this.page);
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
searchReset1() {
this.query = {};
this.onLoad(this.page);
},
searchChange1() {
this.page.currentPage = 1;
this.onLoad(this.page, this.query);
},
show(groupId, plateformId, name, mainId) {
this.visible = true;
this.groupId = groupId;
this.plateformId = plateformId;
this.groupName = name;
this.mainId = mainId;
this.onLoad(this.page);
},
cityId(cid) {
const result = ["", "", ""];
if (cid) {
const city = this.$store.getters.getAreaParents(cid);
for (let i = 0; i < city.length; i++) {
const element = city[i];
result[i] = element.label;
}
}
return result;
},
submit() {
this.visible = false;
this.$emit("success");
},
drawerClose() {
this.visible = false;
this.$emit("success");
},
/*添加企业*/
handleAddCmp() {
this.$refs.addCmp.show(this.plateformId, this.groupName);
},
/*移除企业*/
removeCompany(companyId) {
if (companyId == this.mainId) {
this.$message.closeAll();
this.$message.error("主ID企业不能移除");
} else {
removeRelations(companyId, this.plateformId).then(() => {
this.$message.closeAll();
this.$message.success("移除成功");
this.onLoad(this.page);
});
}
},
/*重置--批量移除企业*/
reset() {
//当列表中有主id企业时要滤出来
let cmpIds = [];
if (this.data.length != 0) {
this.data.forEach((element) => {
if (element.platformNo != this.mainId) {
cmpIds.push(element.platformNo);
}
});
if (cmpIds.length == 0) {
this.$message.closeAll();
this.$message.error("主ID企业不能重置");
} else {
removeRelations(cmpIds.join(","), this.plateformId).then(() => {
this.$message.success("重置成功");
this.onLoad(this.page);
this.page.total = 0;
});
}
} else {
this.$message.error("未添加企业,不能重置");
}
},
setMainID(companyID) {
setGroupMainId(this.groupId, companyID).then(() => {
this.$message.success("设置成功");
this.mainId = companyID; //主id修改成功后把集团的主id修改为所选企业的platformNo
this.onLoad(this.page);
});
},
onLoad(page, params = {}) {
getCompanysList(
page.currentPage,
page.pageSize,
Object.assign(this.query, params),
this.plateformId
).then((res) => {
const data = res.data.data;
this.data = data.records;
this.page.total = data.total;
});
},
success(){
this.onLoad(this.page);
if(this.data.length!=0 &&!this.mainId ){
this.mainId=this.data[0]['platformNo'];
return;
}
}
},
};
</script>