Browse Source

党组织管理fix

V1.0
wxz 3 years ago
parent
commit
b64b525707
  1. 168
      src/views/modules/communityParty/partyOrg/create.vue
  2. 146
      src/views/modules/communityParty/partyOrg/orgTree.vue

168
src/views/modules/communityParty/partyOrg/create.vue

@ -1,9 +1,9 @@
<template>
<el-dialog :visible.sync="visible"
<el-dialog :visible="visible"
:title="'新增党组织'"
:close-on-click-modal="false"
:close-on-press-escape="false"
:close="handleDlgClose">
:close-on-press-escape="true"
@close="handleDlgClose">
<el-form class="form"
:model="dataForm"
:rules="dataRule"
@ -14,7 +14,8 @@
<el-form-item prop="partyOrgLevel"
label="党组织类型">
<el-select v-model="dataForm.partyOrgLevel"
@change="handlePartyOrgLevelSelected"
@change="handlePartyOrgLevelSelected"
clearable
placeholder="请选择">
<el-option
v-for="level in partyOrgLevels"
@ -29,6 +30,7 @@
label="上级党组织">
<el-select v-model="dataForm.partyOrgPid"
@change="handleParentPartyOrgSelected"
clearable
placeholder="请选择">
<el-option
v-for="org in parentPartyOrgs"
@ -40,9 +42,11 @@
</el-form-item>
<el-form-item prop="orgId"
label="行政组织" v-if="orgSelectorShow">
label="行政组织">
<el-select v-model="dataForm.orgId"
@change=""
@change="handleXingzhengOrgSelected"
:disabled="xingzhengSelectorDisabled"
clearable
placeholder="请选择">
<el-option
v-for="org in xingzhengOrgs"
@ -53,6 +57,21 @@
</el-select>
</el-form-item>
<el-form-item prop="principalId"
label="负责人">
<el-select v-model="dataForm.principalId"
@change=""
clearable
placeholder="请选择">
<el-option
v-for="principal in principals"
:key="principal.principalId"
:label="principal.principalName"
:value="principal.principalId">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="partyOrgName"
label="党组织名称">
<el-input v-model="dataForm.partyOrgName"
@ -95,7 +114,7 @@
</el-form>
<template slot="footer">
<el-button @click="">取消</el-button>
<el-button @click="handleDlgClose">取消</el-button>
<el-button type="primary" @click="handleSubmitCreate">确定</el-button>
</template>
</el-dialog>
@ -120,6 +139,7 @@ export default {
partyOrgPid: null,
partyOrgName: null,
partyOrgLevel: null,
principalId: null,
orgId: null, // id
description: null,
longitude: null,
@ -133,7 +153,8 @@ export default {
//
xingzhengOrgs: [],
orgSelectorShow: true, //
principals: [], //
xingzhengSelectorDisabled: false, //
//
searchOptions: [], //
@ -141,6 +162,7 @@ export default {
mapLoading: false, //
mapSearchResultList: [], //
epmetResultResolver: null, // epmet
visible: false,
}
},
mounted () {
@ -169,6 +191,8 @@ export default {
//
initMap (latitude, longitude) {
let d = document.getElementById("partyOrgMap");
console.log("地图div:" + d);
map = new daiMap(
document.getElementById("partyOrgMap"),
{ latitude, longitude },
@ -188,6 +212,27 @@ export default {
map.setCenter(latitude, longitude);
map.setMarker(latitude, longitude);
},
/**
* 重置
*/
resetForm() {
this.dataForm = {
partyOrgPid: null,
partyOrgName: null,
partyOrgLevel: null,
orgId: null, // id
description: null,
longitude: null,
latitude: null,
address: null
};
this.partyOrgLevels = [];
this.parentPartyOrgs = [];
this.principals = [];
this.xingzhengOrgs = [];
},
//
async loadPartyOrgLevels() {
@ -199,10 +244,6 @@ export default {
this.partyOrgLevels = data;
})
.parse(rst);
// processEpmetResult((data) => {
// this.partyOrgLevels = data;
// }, null, rst);
},
/**
@ -216,28 +257,24 @@ export default {
partyOrgLevel: this.dataForm.partyOrgLevel
})
this.parentPartyOrgs = [];
this.principals = [];
this.xingzhengOrgs = [];
this.dataForm.partyOrgPid = null;
this.dataForm.principalId = null;
this.dataForm.orgId = null;
this.epmetResultResolver.success((data) => {
debugger
this.parentPartyOrgs = data;
this.dataForm.partyOrgPid = null;
//
// orgSelectorShows
if (this.dataForm.partyOrgLevel >= 6) {
this.orgSelectorShow = false;
}
// if (this.dataForm.partyOrgLevel >= 6) {
// this.xingzhengSelectorDisabled = true;
// } else {
// this.xingzhengSelectorDisabled = false;
// }
})
.parse(rst);
// processEpmetResult((data) => {
// this.parentPartyOrgs = data;
// this.dataForm.partyOrgPid = null;
//
// //
// // orgSelectorShows
// if (this.dataForm.partyOrgLevel >= 6) {
// this.orgSelectorShow = false;
// }
// }, null, rst);
},
/**
@ -248,7 +285,8 @@ export default {
async handleParentPartyOrgSelected() {
let url = "/actual/base/party/org/listXingZhengOrgs";
let rst = await requestGet(url, {
partyOrgPid: this.dataForm.partyOrgPid
partyOrgPid: this.dataForm.partyOrgPid,
partyOrgLevel: this.dataForm.partyOrgLevel
});
this.epmetResultResolver
@ -256,11 +294,24 @@ export default {
this.xingzhengOrgs = data;
})
.parse(rst);
},
/**
* 加载候选人选项列表
* @returns {Promise<void>}
*/
async handleXingzhengOrgSelected() {
let url = "/actual/base/party/org/listPrincipal";
let rst = await requestGet(url, {
orgId: this.dataForm.orgId,
partyOrgLevel: this.dataForm.partyOrgLevel
});
// processEpmetResult((data) => {
// this.xingzhengOrgs = data;
// console.log(this.xingzhengOrgs)
// }, null, rst);
this.epmetResultResolver
.success((data) => {
this.principals = data;
})
.parse(rst);
},
/**
@ -269,30 +320,43 @@ export default {
*/
async handleDlgClose() {
this.visible = false;
this.$emit("update:visiable", false);
this.resetForm();
},
/**
* 提交表单
* 提交表单事件
* @returns {Promise<void>}
*/
async handleSubmitCreate() {
let url = "/actual/base/party/org/create";
this.$refs.dataForm.validate((success) => {
if (success) {
this.submitCreatePartyOrg();
}
});
},
/**
* 执行提交
* @returns {Promise<void>}
*/
async submitCreatePartyOrg() {
let url = "/actual/base/party/org/create";
let params = {
...this.dataForm
}
let rst = await requestPost(url, params)
this.epmetResultResolver
.success((data) => {
this.$message.success("提交成功");
this.handleDlgClose(); //
this.$emit("refreshTree")
})
.parse(rst);
// processEpmetResult((data) => {
// this.$message.success("");
// }, null, rst)
},
//
@ -373,23 +437,17 @@ export default {
orgId: [
{ required: true, message: '行政组织不能为空', trigger: 'blur' },
],
mySelectOrg: [
{ required: true, message: '上级党组织不能为空', trigger: 'blur' },
],
partyOrgType: [
{ required: true, message: '党组织类型不能为空', trigger: 'blur' },
],
agencyId: [
{ required: true, message: '行政组织不能为空', trigger: 'blur' },
longitude: [
{ required: true, message: '请选择地图位置', trigger: 'blur' },
],
}
},
},
props: {
visible: {
defult: false,
type: Boolean
}
// visible: {
// defult: false,
// type: Boolean
// }
}
}
</script>

146
src/views/modules/communityParty/partyOrg/orgTree.vue

@ -8,69 +8,47 @@
</div>
<!--创建对话框-->
<Create ref="create-org" v-if="createDlgShow" :visible="createDlgShow"></Create>
<Create ref="create-org"
v-if="createDlgShow"
:visible.sync="createDlgShow"
@refreshTree="handleLoadTreeRoot"></Create>
<!-- 列表表格 -->
<!--<el-table
class="resi-table"
v-loading="tableLoading"
:data="tableData"
:default-expand-all="true"
<!--:expand-row-keys="expandedOrgId"-->
<el-table
:data="partyOrgTree"
style="width: 100%"
row-key="id"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
:height="tableHeight">
<el-table-column prop="partyOrgName" min-width="250" label="党组织名称"></el-table-column>
<el-table-column prop="partyOrgType" min-width="150" label="类别">
<template slot-scope="scope">
<span v-for="(item, index) in partyOrgTypes"
:key="item.value"
:value="item.label"
v-if="scope.row.partyOrgType == item.value">
{{ item.label }}</span>
</template>
fit
border
lazy
:load="handleTreeNodeExpand"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}">
<el-table-column
prop="partyOrgName"
label="党组织名称"
width="180">
</el-table-column>
<el-table-column
prop="partyOrgLevelName"
label="党组织类型"
width="180">
</el-table-column>
<el-table-column
prop="principalName"
label="负责人"
width="180">
</el-table-column>
<el-table-column prop="principal" width="120" label="负责人"></el-table-column>
<el-table-column prop="principalMobile" width="150" label="联系方式"></el-table-column>
<el-table-column label="操作" align="center" width="300">
<template slot-scope="scope">
<el-button v-if="scope.row.partyOrgType != '6'"
@click="principal(scope.row)"
type="text"
size="small"
class="div-table-button&#45;&#45;detail">{{ '负责人' }}
</el-button>
<el-button
v-if="(scope.row.agencyId == agencyId || scope.row.agencyPids.includes(agencyId)) && scope.row.partyOrgType != '6'"
@click="handleLook(scope.row.agencyPids, scope.row.id, scope.row)"
type="text"
size="small"
class="div-table-button&#45;&#45;detail">{{ '查看党员' }}
</el-button>
<el-button
v-if="(scope.row.agencyId == agencyId || scope.row.agencyPids.includes(agencyId)) && scope.row.partyOrgType != '5' && scope.row.partyOrgType != '6'"
@click="addOrUpdateHandle('', scope.row.id, scope.row.orgPids, scope.row.agencyId, scope.row.partyOrgType, scope.row.partyOrgName)"
type="text"
size="small"
class="div-table-button&#45;&#45;add">新增下级
</el-button>
<el-button
v-if="(scope.row.agencyId == agencyId || scope.row.agencyPids.includes(agencyId)) && scope.row.partyOrgType != '6'"
@click="addOrUpdateHandle(scope.row.id, '', '', scope.row.pid, scope.row.partyOrgType, '')"
type="text"
size="small"
class="div-table-button&#45;&#45;edit">修改
</el-button>
<el-button
v-if="(scope.row.agencyId == agencyId || scope.row.agencyPids.includes(agencyId))&& scope.row.partyOrgType != '6'"
@click="deleteAgency(scope.row.id)"
type="text"
size="small"
class="btn-color-del">删除
</el-button>
</template>
<el-table-column
prop="principalMobile"
label="联系方式"
width="180">
</el-table-column>
</el-table>-->
<el-table-column
label="操作"
width="180">
</el-table-column>
</el-table>
<!--<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getTableData"></add-or-update>-->
@ -126,6 +104,8 @@
<script>
// import AddOrUpdate from './icpartyorg-add-or-update'
import TableTreeColumn from '@/components/table-tree-column'
import { requestGet, requestPost } from "@/js/dai/request";
import { EpmetResultResolver } from '@/js/epmet-result-resolver'
import Create from './create'
// import lookMember from './lookMember'
import { mapGetters } from 'vuex'
@ -133,8 +113,12 @@ import { mapGetters } from 'vuex'
export default {
data () {
return {
epmetResultResolver: null,
createDlgShow: false, //
editDlgShow: false, //
partyOrgTree: [], //
expandedOrgId: []
}
},
components: {
@ -156,10 +140,15 @@ export default {
}
},
mounted () {
this.epmetResultResolver = new EpmetResultResolver();
this.handleLoadTreeRoot();
this.$nextTick(() => {
this.searchH = this.$refs.searchCard.$el.offsetHeight
console.log('tableHeight', this.tableHeight)
})
});
},
async created () {
// this.agencyId = localStorage.getItem('agencyId')
@ -175,11 +164,48 @@ export default {
handleCreateBtnClick() {
this.createDlgShow = true;
this.$nextTick(() => {
this.$refs['create-org'].visible = true;
this.$refs['create-org'].init();
});
}
},
/**
* 加载树根
*/
async handleLoadTreeRoot() {
let url = "/actual/base/party/org/loadPartyOrgTreeRoot";
let rst = await requestGet(url, {})
this.epmetResultResolver.success((data) => {
this.partyOrgTree.length = 0;
this.partyOrgTree.push(data);
// 2
this.$nextTick(() => {
document.getElementsByClassName('el-table__expand-icon')[0].click();
});
}).parse(rst);
},
/**
* 树节点展开
* @returns {Promise<void>}
*/
async handleTreeNodeExpand(row, treeNode, resolve) {
let url = "/actual/base/party/org/listNextLevelPartyOrgTreeNodesByPid";
let rst = await requestGet(url, {
partyOrgPid: row.id
})
this.epmetResultResolver.success((data) => {
row.children = data;
resolve(row.children);
// this.partyOrgTree.push(data);
}).parse(rst);
}
}
}
</script>

Loading…
Cancel
Save