<template>
|
<div>
|
<v-header :title="form.id ? '编辑党组织' : '新增党组织'"></v-header>
|
<div class="form">
|
<el-form ref="form" :model="form" label-width="100px">
|
<el-form-item label="上级组织">
|
<el-select
|
clearable
|
v-model="form.parentId"
|
@change="change"
|
placeholder="请选择"
|
>
|
<el-option
|
v-for="item in listParty"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id"
|
:disabled="item.disabled"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<!---->
|
<el-form-item required label="组织类别">
|
<el-select v-model="form.type" placeholder="请选择">
|
<template v-if="pType === ''">
|
<el-option
|
v-for="item in typeList"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</template>
|
<template v-if="pType === 1">
|
<el-option
|
v-for="item in typeList1"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</template>
|
<template v-if="pType === 2">
|
<el-option
|
v-for="item in typeList2"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</template>
|
<template v-if="pType === 3">
|
<el-option
|
v-for="item in typeList3"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</template>
|
<template v-if="pType === 4">
|
<el-option
|
v-for="item in typeList4"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</template>
|
</el-select>
|
</el-form-item>
|
<!---->
|
<el-form-item required label="党组织名称">
|
<el-input v-model="form.name" placeholder="请输入"></el-input>
|
</el-form-item>
|
<!---->
|
<el-form-item required label="组织隶属">
|
<el-select v-model="form.subjection" placeholder="请选择">
|
<el-option
|
v-for="item in subjectionList"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<!---->
|
<el-form-item label="所属小区">
|
<el-select v-model="form.areaId" placeholder="请选择">
|
<el-option
|
v-for="item in areaList"
|
:key="item.villageId"
|
:label="item.name"
|
:value="item.villageId"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<!---->
|
<el-form-item label="组织位置">
|
<el-input
|
class="input-width"
|
placeholder="请选择组织地点"
|
size="small"
|
type="textarea"
|
resize="none"
|
:rows="3"
|
v-model="form.address"
|
maxlength="50"
|
@focus="mapCheck"
|
></el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-button @click="$router.back()">取 消</el-button>
|
<el-button type="primary" @click="sub">确 定</el-button>
|
</el-form-item>
|
</el-form>
|
</div>
|
<!---->
|
<el-dialog
|
title="设置组织地址"
|
:visible.sync="dialogVisibleMap"
|
:before-close="handleCloseMap"
|
append-to-body
|
>
|
<MapBox ref="mapContent" @setLocation="setLocation" />
|
<div style="text-align: center; margin-top: 20px">
|
<el-button @click="handleCloseMap">取 消</el-button>
|
<el-button type="primary" @click="mapComfirm">确 定</el-button>
|
</div>
|
</el-dialog>
|
</div>
|
</template>
|
<script>
|
import MapBox from "com/map/map.vue";
|
let id = 0;
|
export default {
|
props: [],
|
components: { MapBox },
|
data() {
|
return {
|
form: {
|
parentId: "",
|
type: "",
|
subjection: "",
|
areaId: "",
|
buildId: "",
|
address: "",
|
name: "",
|
lat: "",
|
lng: "",
|
areaList: [],
|
},
|
positionData: {},
|
dialogVisibleMap: false,
|
listParty: [],
|
pType: "", //上级组织类别
|
typeList: [{ label: "基层党委", value: 1 }],
|
typeList1: [
|
{ label: "二级基层党委", value: 2 },
|
{ label: "党总支", value: 3 },
|
{ label: "党支部", value: 4 },
|
],
|
typeList2: [
|
{ label: "党总支", value: 3 },
|
{ label: "党支部", value: 4 },
|
],
|
typeList3: [{ label: "党支部", value: 4 }],
|
typeList4: [{ label: "党小组", value: 5 }],
|
subjectionList: [
|
{ label: "乡镇", value: 1 },
|
{ label: "机关", value: 2 },
|
{ label: "域市街道", value: 3 },
|
{ label: "农村社区居委会", value: 4 },
|
{ label: "建制村", value: 5 },
|
{ label: "国有经济控制", value: 6 },
|
{ label: "集体经济控制", value: 7 },
|
{ label: "非公有经济控制", value: 8 },
|
{ label: "事业单位", value: 9 },
|
{ label: "社会组织", value: 10 },
|
{ label: "其他", value: 11 },
|
],
|
areaList: [],
|
};
|
},
|
created() {
|
this.setAreaList();
|
if (this.$route.query.o) {
|
this.setDetail();
|
} else {
|
this.setlistParty();
|
}
|
},
|
mounted() {},
|
methods: {
|
setDetail() {
|
let detail = JSON.parse(this.$route.query.o);
|
// if(detail.parentId===0){
|
// detail.parentId = detail.id;
|
// }
|
Object.assign(this.form, detail);
|
this.form.parentId = this.form.parentId ? this.form.parentId : "";
|
this.form.lat = this.form.latitude;
|
this.form.lng = this.form.longitude;
|
this.pType = this.form.type === 1 ? "" : this.form.type - 1;
|
this.setlistParty();
|
|
},
|
setAreaList() {
|
this.$api.get("building/village/list", "", (res) => {
|
// console.log(res)
|
this.areaList = res;
|
});
|
},
|
change(e) {
|
//上级组织change
|
this.pType = "";
|
this.form.type = "";
|
this.listParty.map((item) => {
|
if (item.id === e) {
|
this.pType = item.type;
|
}
|
});
|
},
|
setlistParty() {
|
//
|
this.$api.get(
|
"communitypartybuilding/listpartyorganization",
|
"",
|
(res) => {
|
let list = res.filter((item) => {
|
if (item.type < 5) {
|
return item;
|
}
|
});
|
this.listParty = list;
|
this.listParty.forEach((item) => {
|
if (item.id == this.form.id) {
|
item.disabled = true;
|
}
|
});
|
}
|
);
|
},
|
mapComfirm() {
|
if (this.positionData.addr) {
|
this.form.address = this.positionData.addr;
|
this.form.lat = this.positionData.lat;
|
this.form.lng = this.positionData.lng;
|
}
|
this.dialogVisibleMap = false;
|
this.positionData = {};
|
},
|
handleCloseMap() {
|
this.dialogVisibleMap = false;
|
this.positionData = {};
|
},
|
setLocation(data) {
|
this.positionData = data;
|
},
|
mapCheck() {
|
this.dialogVisibleMap = true;
|
this.$nextTick(() => {
|
this.$refs.mapContent.getLocation({
|
val: this.form.address,
|
l: this.form.lat,
|
r: this.form.lng,
|
});
|
});
|
},
|
sub() {
|
//确定
|
// demo.toast("删除成功");
|
if (!this.form.type) {
|
return demo.toast("请选择组织类别");
|
}
|
if (!this.form.name) {
|
return demo.toast("请输入党组织名称");
|
}
|
if (!this.form.subjection) {
|
return demo.toast("请选择组织隶属");
|
}
|
let data = demo.copy(this.form);
|
data.latitude = data.lat;
|
data.longitude = data.lng;
|
data.status = 1;
|
let url = data.id
|
? "communitypartybuilding/updatepartyorganization"
|
: "communitypartybuilding/addpartyorganization";
|
this.$api.post(url, data, (res) => {
|
demo.toast("操作成功");
|
this.$router.back();
|
// console.log(res)
|
});
|
},
|
},
|
watch: {},
|
computed: {},
|
};
|
</script>
|
<style scoped>
|
.form {
|
width: 500px;
|
}
|
</style>
|