From 55b70606583fe77c0544d587653bc78ea6ee6705 Mon Sep 17 00:00:00 2001 From: wxz Date: Sun, 16 Jul 2023 00:08:18 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=85=9A=E7=BB=84=E7=BB=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E3=80=91=E5=AE=8C=E6=88=90=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../communityParty/partyOrg/create.vue | 156 ++++-- .../communityParty/partyOrg/orgTree.vue | 33 +- .../communityParty/partyOrg/update.vue | 466 ++++++++++++++++++ 3 files changed, 606 insertions(+), 49 deletions(-) create mode 100644 src/views/modules/communityParty/partyOrg/update.vue diff --git a/src/views/modules/communityParty/partyOrg/create.vue b/src/views/modules/communityParty/partyOrg/create.vue index 3d96733c7..8121653ba 100644 --- a/src/views/modules/communityParty/partyOrg/create.vue +++ b/src/views/modules/communityParty/partyOrg/create.vue @@ -136,6 +136,7 @@ import daiMap from "@/utils/dai-map"; export default { data () { return { + operation: 'create', // 新建createNew ;新建下级createSubOrg dataForm: { partyOrgPid: null, partyOrgName: null, @@ -163,19 +164,39 @@ export default { mapLoading: false, // 地图加载 mapSearchResultList: [], // 地图搜索结果列表 epmetResultResolver: null, // epmet请求结果解析器 - // visible: false, + visible: false, } }, mounted () { - + this.epmetResultResolver = new EpmetResultResolver(this); }, methods: { - // 初始化 - init () { - this.epmetResultResolver = new EpmetResultResolver(this); + /** + * 初始化 + * @param parentPartyOrgLevel 非必填,父党组织级别的level,在添加下级党组织的时候传递,否则为空 + * @param parentPartyOrgId 非必填,父党组织级别的ID,在添加下级党组织的时候传递,否则为空 + * @returns {Promise} + */ + async init (operation, parentPartyOrgLevel, parentPartyOrgId) { + if (operation) { + this.operation = operation; + } + + this.visible = true; // 加载党组织级别下拉框 - this.loadPartyOrgLevels(); + this.loadPartyOrgLevels(parentPartyOrgLevel); + + // 如果传递了党组织id,operation=createSubOrg,新增下级, + if (operation === 'createSubOrg' && parentPartyOrgId) { + + // async异步函数的返回值,如果是正常值或者是对象,则需要通过then()指定回调函数来获取返回值 + await this.getPartyOrgDetail(parentPartyOrgId).then(resp => { + this.parentPartyOrgs.push(resp); + this.dataForm.partyOrgPid = parentPartyOrgId; + + }); + } // 初始化地图 let { latitude, longitude } = this.$store.state.user; @@ -236,9 +257,11 @@ export default { }, // 加载党组织类型下拉框 - async loadPartyOrgLevels() { + async loadPartyOrgLevels(parentPartyOrgLevel) { let url = "/actual/base/party/org/listPartyOrgLevels"; - let rst = await requestGet(url, {}); + let rst = await requestGet(url, { + parentPartyOrgLevel: parentPartyOrgLevel + }); this.epmetResultResolver .success((data) => { @@ -248,14 +271,13 @@ export default { }, /** - * 党组织级别选中事件 + * 加载上级党组织 * @returns {Promise} */ - async handlePartyOrgLevelSelected() { - // 加载上级党组织 + async loadParentPartyOrgs(partyOrgLevel) { let url = "/actual/base/party/org/listParentPartyOrg"; let rst = await requestGet(url, { - partyOrgLevel: this.dataForm.partyOrgLevel + partyOrgLevel: partyOrgLevel }) this.parentPartyOrgs = []; @@ -265,16 +287,32 @@ export default { this.dataForm.partyOrgPid = null; this.dataForm.principalId = null; this.dataForm.orgId = null; - + this.epmetResultResolver.success((data) => { - this.parentPartyOrgs = data; - if (this.dataForm.partyOrgLevel >= 6) { - this.xingzhengSelectorVisible = false; - } else { - this.xingzhengSelectorVisible = true; - } + this.parentPartyOrgs = data; + if (this.dataForm.partyOrgLevel >= 6) { + this.xingzhengSelectorVisible = false; + } else { + this.xingzhengSelectorVisible = true; + } }) - .parse(rst); + .parse(rst); + }, + + /** + * 党组织级别选中事件 + * @returns {Promise} + */ + async handlePartyOrgLevelSelected() { + // 加载上级党组织。只在新增的时候加载,新增下级的时候,不加载,init函数中已经固定了上级党组织 + if (this.operation === 'createNew') { + this.loadParentPartyOrgs(this.dataForm.partyOrgLevel); + } + + // 如果新增下级组织,那么在选了level之后,要加载行政组织 + if (this.operation === 'createSubOrg') { + this.loadXingzhengOrgs(); + } }, /** @@ -283,33 +321,11 @@ export default { * @returns {Promise} */ async handleParentPartyOrgSelected() { - let url = "/actual/base/party/org/listXingZhengOrgs"; - - if (!this.dataForm.partyOrgPid) { + if (!this.dataForm.partyOrgLevel || !this.dataForm.partyOrgPid) { return; } - let rst = await requestGet(url, { - partyOrgPid: this.dataForm.partyOrgPid, - partyOrgLevel: this.dataForm.partyOrgLevel - }); - - this.epmetResultResolver - .success((data) => { - this.xingzhengOrgs = data; - - // 1:省委,2:市委,3:区委,4:党工委,5:党委,6:党总支,7:党支部,8:楼院党小组 - // 如果是 >=6 ,那么他们对应的行政组织,就是上级党组织对应的行政组织,自动选中即可 - this.$nextTick(() => { - if (this.dataForm.partyOrgLevel >= 6 && data && data.length > 0) { - this.dataForm.orgId = this.xingzhengOrgs[0].orgId; - - // 自动选择了行政组织,然后自动加载负责人列表 - this.loadPrincipals(); - } - }) - }) - .parse(rst); + this.loadXingzhengOrgs(); }, /** @@ -450,6 +466,58 @@ export default { this.dataForm.longitude = lonlat[0]; this.dataForm.address = selPosition.address + selPosition.name }, + + /** + * 党组织详情 + * @param partyOrgId + * @returns {Promise<*>} + */ + async getPartyOrgDetail(partyOrgId) { + let url = "/actual/base/party/org/brief"; + + let params = { + id: partyOrgId + } + + let rst = await requestGet(url, params) + + let partyOrgDetail; + this.epmetResultResolver + .success((data) => { + partyOrgDetail = data; + }) + .parse(rst); + return partyOrgDetail; + }, + + /** + * 加载行政组织 + * @returns {Promise} + */ + async loadXingzhengOrgs() { + let url = "/actual/base/party/org/listXingZhengOrgs"; + let rst = await requestGet(url, { + partyOrgPid: this.dataForm.partyOrgPid, + partyOrgLevel: this.dataForm.partyOrgLevel + }); + + this.epmetResultResolver + .success((data) => { + this.xingzhengOrgs = data; + + // 1:省委,2:市委,3:区委,4:党工委,5:党委,6:党总支,7:党支部,8:楼院党小组 + // 如果是 >=6 ,那么他们对应的行政组织,就是上级党组织对应的行政组织,自动选中即可 + this.$nextTick(() => { + if (this.dataForm.partyOrgLevel >= 6 && data && data.length > 0) { + this.dataForm.orgId = this.xingzhengOrgs[0].orgId; + + // 自动选择了行政组织,然后自动加载负责人列表 + this.loadPrincipals(); + } + }) + }) + .parse(rst); + } }, computed: { diff --git a/src/views/modules/communityParty/partyOrg/orgTree.vue b/src/views/modules/communityParty/partyOrg/orgTree.vue index 959df864f..c80d2f8c7 100644 --- a/src/views/modules/communityParty/partyOrg/orgTree.vue +++ b/src/views/modules/communityParty/partyOrg/orgTree.vue @@ -12,6 +12,11 @@ v-if="createDlgShow" :visible.sync="createDlgShow" @refreshTree="handleLoadTreeRoot"> + + + width="360"> 新增下级 + + 修改 @@ -81,6 +91,7 @@ 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 Update from './update' import SelectPrincipal from './select_principal.vue' // import lookMember from './lookMember' import { mapGetters } from 'vuex' @@ -92,13 +103,14 @@ export default { selectPrincipalDlgShow: false, // 选择负责人对话框是否显示 createDlgShow: false, // 创建对话框是否显示 + updateDlgShow: false, // 创建对话框是否显示 editDlgShow: false, // 创建对话框是否显示 partyOrgTree: [], // 党组织树形结构 expandedOrgId: [] } }, components: { - TableTreeColumn, Create, SelectPrincipal + TableTreeColumn, Create, Update, SelectPrincipal }, computed: { ...mapGetters(['clientHeight', 'iframeHeight']), @@ -151,8 +163,17 @@ export default { handleCreateBtnClick() { this.createDlgShow = true; this.$nextTick(() => { - this.$refs['create-org'].visible = true; - this.$refs['create-org'].init(); + this.$refs['create-org'].init('createNew'); + }); + }, + + /** + * 点击"修改" + */ + handleUpdateBtnClick(row) { + this.updateDlgShow = true; + this.$nextTick(() => { + this.$refs['updateOrg'].init(row.id); }); }, @@ -162,13 +183,15 @@ export default { */ handleCreateSubPartyOrg(row) { this.createDlgShow = true; + this.$nextTick(() => { + this.$refs['create-org'].init("createSubOrg", row.partyOrgLevel, row.id); + }); }, /** * 加载树根 */ async handleLoadTreeRoot() { - debugger let url = "/actual/base/party/org/loadPartyOrgTreeRoot"; let rst = await requestGet(url, {}) diff --git a/src/views/modules/communityParty/partyOrg/update.vue b/src/views/modules/communityParty/partyOrg/update.vue new file mode 100644 index 000000000..3ce1ce581 --- /dev/null +++ b/src/views/modules/communityParty/partyOrg/update.vue @@ -0,0 +1,466 @@ + + + + + +