277 lines
7.2 KiB
Vue
277 lines
7.2 KiB
Vue
|
|
<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>
|