wxz 2 years ago
parent
commit
7546ae5aea
  1. 91
      src/views/modules/communityParty/members/memberList.vue
  2. 36
      src/views/modules/communityParty/members/payRecord.vue
  3. 456
      src/views/modules/communityParty/members/points.vue
  4. 389
      src/views/modules/communityParty/partyOrg/centerMember.vue
  5. 39
      src/views/modules/communityParty/partyOrg/orgTree.vue

91
src/views/modules/communityParty/members/memberList.vue

@ -5,6 +5,7 @@
<el-form-item label="所属党组织">
<el-cascader :options="partyOrgTree"
clearable
style="width: 300px"
placeholder="请选择"
v-model="searchForm.partyOrgId"
@change="handlePartyOrgCascadarChange"
@ -158,6 +159,17 @@
prop="joinTime"
label="入党日期">
</el-table-column>
<el-table-column
prop="payStatus"
label="是否缴费" style="width: 50px">
<template slot-scope="scope">
{{ scope.row.payStatus ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column
prop="latestPayDate"
label="最近缴费日期">
</el-table-column>
<el-table-column
prop="centerFlag"
label="党员中心户">
@ -182,7 +194,7 @@
<el-table-column
label="操作"
width="240">
width="280">
<template slot-scope="scope">
<el-button type="text"
@click="handleDetailBtnClick(scope.row)"
@ -200,6 +212,10 @@
@click="handlePayRecordBtnClick(scope.row)"
size="small"
class="div-table-button--detail">缴费记录</el-button>
<el-button type="text"
@click="handlePointsRecordBtnClick(scope.row)"
size="small"
class="div-table-button--detail">量化积分</el-button>
</template>
</el-table-column>
</el-table>
@ -222,6 +238,7 @@
<Detail ref="detail" @finishUpdate="search"></Detail>
<Update ref="update" @finishUpdate="search"></Update>
<PayRecord ref="payRecord" ></PayRecord>
<Points ref="pmPoints" ></Points>
</div>
</template>
<script>
@ -231,31 +248,48 @@ import { Loading } from 'element-ui';
import Create from './create'
import Detail from './detail'
import Update from './update'
import Points from './points'
import PayRecord from './payRecord'
import SelectPrincipal from '@/views/modules/communityParty/partyOrg/select_principal.vue'
import { requestGet, requestPost } from '@/js/dai/request'
import { EpmetResultResolver } from '@/js/epmet-result-resolver'
export default {
components: { Create, Detail, Update, PayRecord },
mounted () {
components: { Create, Detail, Update, PayRecord, Points },
activated () {
//
let partyOrgId = this.$route.query.partyOrgId
if (partyOrgId) {
this.searchForm.partyOrgId = partyOrgId;
}
this.epmetResultResolver = new EpmetResultResolver(this)
// dataForm
this.searchFormClear = JSON.parse(JSON.stringify(this.searchForm))
//
this.loadPartyOrgOptions()
if (partyOrgId) {
//
this.loadPartyOrgOptions(20);
} else {
this.loadPartyOrgOptions();
}
//
this.loadPartyJobOptions();
//
this.search();
},
mounted () {
},
data () {
return {
pointEditDlgShow: false,
exportBtnLoading: false,
importLoading: false,
loading: false,
@ -401,20 +435,6 @@ export default {
this.$refs['create'].init()
},
/**
* 导入按钮点击
*/
handleImportBtnClick() {
this.uploadDlgShow = true;
},
/**
* 上传对话框关闭
*/
handleUploadDlgClose() {
this.uploadDlgShow = false;
},
/**
* 查看详情
*/
@ -423,6 +443,15 @@ export default {
this.$refs['detail'].init(row.id);
},
/**
* 更新按钮点击
* @param row
*/
handleUpdateBtnClick(row) {
this.updateDlgShow = true;
this.$refs['update'].init(row.id);
},
/**
* 更新按钮点击
* @param row
@ -530,9 +559,7 @@ export default {
* @returns {Promise<void>}
*/
async handleNextOrgTreeClick (node, resolve) {
if (node.level === 1) {
// loadPartyOrgTreeRoot121
if (node.level === 0) {
resolve(null)
return
}
@ -545,6 +572,7 @@ export default {
this.epmetResultResolver.success((data) => {
// this.setDisableStatus4TreeNode([data]);
node.children.length = 0;
resolve(data)
}).parse(rst)
},
@ -585,13 +613,24 @@ export default {
this.$refs.payRecord.init(row.id, row.partyOrgName, row.name, row.mobile, row.idCard);
},
/**
* 量化积分
* @param row
*/
handlePointsRecordBtnClick(row) {
this.$refs.pmPoints.initDlg(row.id, row.partyOrgName, row.name, row.mobile, row.idCard);
this.pointEditDlgShow = true;
},
/** ● ========================方法======================== **/
async loadPartyOrgOptions () {
let url = '/actual/base/party/org/listPartyOrgTreeRoot'
async loadPartyOrgOptions (depth) {
let url = '/actual/base/party/org/listPartyOrgTreeRoot4Select'
let rst = await requestGet(url, {})
let rst = await requestGet(url, {
"depth": depth,
})
this.epmetResultResolver.success((data) => {
// this.setDisableStatus4TreeNode([data]);

36
src/views/modules/communityParty/members/payRecord.vue

@ -139,7 +139,7 @@
<script>
export default {
// props: {
// partyId: {
// partyMemberId: {
// type: String,
// default: ''
// },
@ -154,44 +154,29 @@ export default {
partyMemberName: null,//
mobile: null,//
idCard: null,//
partyId: null,// id
partyMemberId: null,// id
dlgVisible: false,//
btnDisabled: false,
btnType: 'cancle',
isEdit: false,
tableData: [],
tempRow: {}
}
},
watch: {
partyId: {
handler (val) {
console.log('val------points', val)
if (val.length > 0) {
this.btnDisabled = false
this.getList()
} else {
this.btnDisabled = true
}
},
immediate: true
}
},
created () {
// if (this.partyId) this.getList()
// if (this.partyMemberId) this.getList()
},
methods: {
/**
* 初始化
*/
init (partyId, partyOrgName, partyMemberName, mobile, idCard) {
init (partyMemberId, partyOrgName, partyMemberName, mobile, idCard) {
this.dlgVisible = true
this.partyId = partyId
this.partyMemberId = partyMemberId
this.partyOrgName = partyOrgName
this.partyMemberName = partyMemberName
this.mobile = mobile
this.idCard = idCard
this.getList();
},
getRowClass ({ rowIndex, columnIndex }) {
if (rowIndex === 0) {
@ -241,7 +226,7 @@ export default {
this.isEdit = true
const item = {
isEdit: true,
partyMemberId: this.partyId,
partyMemberId: this.partyMemberId,
payDate: '',
money: '',
startDate: '',
@ -252,7 +237,7 @@ export default {
},
async save (row) {
const params = {
partyMemberId: this.partyId,
partyMemberId: this.partyMemberId,
payDate: row.payDate,
money: row.money,
startDate: row.startDate,
@ -320,7 +305,7 @@ export default {
const params = {
page: 1,
limit: 9999,
partyMemberId: this.partyId
partyMemberId: this.partyMemberId
}
await this.$http
@ -348,7 +333,8 @@ export default {
* 关闭对话框
*/
handleDlgClose () {
this.dlgVisible = false
this.dlgVisible = false;
this.tableData.length = 0;
}
}
}

456
src/views/modules/communityParty/members/points.vue

@ -0,0 +1,456 @@
<template>
<el-dialog v-if="dlgVisible"
:visible="dlgVisible"
@close="handleDlgClosed"
:close-on-click-modal="false"
:title="'量化积分'">
<el-form>
<el-row>
<el-col :span="12">
<el-form-item label="所属党组织">
<el-input disabled v-model="partyOrgName" style="width: 240px"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="党员姓名">
<el-input disabled v-model="partyMemberName" style="width: 240px"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="联系电话">
<el-input disabled v-model="mobile" style="width: 240px"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证件号">
<el-input disabled v-model="idCard" style="width: 240px"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form label-width="140px" :model="form" :inline="true"
:rules="rules" ref="ruleForm"
class="form-wr">
<div>
<el-form-item label="评分周期" prop="year">
<div class="flex-div">
<!-- <div class="mr10">评分周期</div> -->
<div class="mr10">
<el-date-picker
v-model="form.year"
type="year"
value-format="yyyy"
placeholder="选择年"
@change="handleYearChange">
</el-date-picker>
</div>
<div class="mr10">
<el-form-item prop="quarter">
<el-select v-model="form.quarter" placeholder="请选择" class="input-width" clearable
@change="handleQuaterChange">
<el-option
v-for="item in quarterList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
<div>
<el-button
type="primary"
size="small"
@click="hadnleSubmitbase"
>保存
</el-button>
</div>
</div>
</el-form-item>
</div>
<el-form-item label="基础积分分值" prop="basePoint">
<el-input v-model="form.basePoint" type="number" placeholder="请输入" class="input-width" clearable/>
</el-form-item>
<el-form-item label="基础积分选项" prop="baseOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.baseOptions">
<el-checkbox v-for="item in baseOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<div>
<el-form-item label="民主评议积分分值" prop="reviewPoint">
<el-input v-model="form.reviewPoint" type="number" placeholder="请输入" class="input-width"
clearable></el-input>
</el-form-item>
<el-form-item label="民主评议积分选项" prop="reviewOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.reviewOptions">
<el-checkbox v-for="item in pyiOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
<div>
<el-form-item label="激励积分分值" prop="inspirePoint">
<el-input v-model="form.inspirePoint" type="number" placeholder="请输入" class="input-width" clearable/>
</el-form-item>
<el-form-item label="激励积分选项" prop="inspireOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.inspireOptions">
<el-checkbox v-for="item in jiliOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
<div>
<el-form-item label="警示扣分分值" prop="warnPoint">
<el-input v-model="form.warnPoint" type="number" placeholder="请输入" class="input-width" clearable/>
</el-form-item>
<el-form-item label="警示扣分选项" prop="warnOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.warnOptions">
<el-checkbox v-for="item in jinshiOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
</el-form>
</el-dialog>
</template>
<script>
export default {
// props: {
// partyId: {
// type: String,
// default: ''
// },
// disabled: {
// type: Boolean,
// default: false
// }
// },
data () {
return {
dlgVisible: false,
btnDisabled: false,
partyOrgName: null,
partyMemberName: null,
mobile: null,
idCard: null,
year: '',
quarter: '',
form: {
id: null,
partyMemberId: null,
year: '',
quarter: '',
basePoint: '',
baseOptions: [],
reviewPoint: '',
reviewOptions: [],
inspirePoint: '',
inspireOptions: [],
warnPoint: '',
warnOptions: [],
},
formClear: null, // form
rules: {
year: [{ required: true, message: '年度不能为空', trigger: 'blur' }],
quarter: [{ required: true, message: '季度不能为空', trigger: 'blur' }]
},
formItemWd: '500px',
quarterList: [
{
label: '第一季度',
value: '1'
},
{
label: '第二季度',
value: '2'
},
{
label: '第三季度',
value: '3'
},
{
label: '第四季度',
value: '4'
}
],
baseOptions: [
{
label: '参加三会一课',
value: '1'
},
{
label: '参加主题党日',
value: '2'
},
{
label: '足额缴纳党费',
value: 3
},
{
label: '积极参加学习培训',
value: '4'
},
{
label: '自觉执行党组织会议',
value: '5'
},
{
label: '严守党的政治纪律和政治规矩',
value: '6'
},
],
jiliOptions: [
{
label: '发挥先锋模范作用',
value: '1'
},
{
label: '维护社会和谐稳定',
value: '2'
},
{
label: '参与社会治理',
value: '3'
},
{
label: '联系服务群众',
value: '4'
}
],
jinshiOptions: [
{
label: '不服从党组织安排',
value: '1'
},
{
label: '不按时足额缴纳党费',
value: '2'
},
{
label: '无故长期脱离组织管理',
value: '3'
},
{
label: '在工作中出现不良影响',
value: '4'
},
{
label: '违反党的纪律',
value: '5'
}
],
pyiOptions: [
{
label: '个人自评',
value: '1'
},
{
label: '党员互评',
value: '2'
},
{
label: '民主测评',
value: '3'
}
]
}
},
watch: {
// partyMemberId: {
// handler (val) {
// console.log('val------points', val)
// if (val.length > 0) {
// this.btnDisabled = false
// } else {
// this.btnDisabled = true
// }
// },
// immediate: true
// }
},
mounted () {
// const w = document.getElementsByClassName('p-wr')[0]
// this.formItemWd = w.clientWidth - 360 + 'px'
// console.log('www----', w)
},
methods: {
/**
* 初始化
*/
// init (partyMemberId, partyOrgName, partyMemberName, mobile, idCard) {
// this.dlgVisible = true;
// this.partyMemberId = partyMemberId;
// this.partyOrgName = partyOrgName;
// this.partyMemberName = partyMemberName;
// this.mobile = mobile;
// this.idCard = idCard;
// },
initDlg (partyMemberId, partyOrgName, partyMemberName, mobile, idCard) {
this.formClear = JSON.parse(JSON.stringify(this.form))
this.dlgVisible = true
this.form.partyMemberId = partyMemberId
this.partyOrgName = partyOrgName
this.partyMemberName = partyMemberName
this.mobile = mobile
this.idCard = idCard
},
/**
* 对话框关闭事件
*/
handleDlgClosed () {
this.form = this.formClear
this.dlgVisible = false
},
handleQuaterChange (val) {
if (this.form.year) {
this.getInfo()
}
this.quarter = val
},
handleYearChange (val) {
this.year = val
},
hadnleSubmitbase () {
if (!this.form.partyMemberId) return
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
const params = {
...this.form,
baseOptions: this.form.baseOptions.length > 0 ? this.form.baseOptions.toString() : '',
reviewOptions: this.form.reviewOptions.length > 0 ? this.form.reviewOptions.toString() : '',
inspireOptions: this.form.inspireOptions.length > 0 ? this.form.inspireOptions.toString() : '',
warnOptions: this.form.warnOptions.length > 0 ? this.form.warnOptions.toString() : ''
}
this.savePoints(params)
} else {
console.log('error submit!!')
return false
}
})
},
/**
* 保存积分
* @param form
* @returns {Promise<void>}
*/
async savePoints (params) {
let url = null
if (!this.form.id) {
//
url = '/actual/base/party/member/point/save'
} else {
url = '/actual/base/party/member/point/update'
}
await this.$http
.post(url, params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功')
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
async getInfo () {
const params = {
year: this.form.year,
quarter: this.form.quarter,
partyMemberId: this.form.partyMemberId
}
await this.$http
.post('/actual/base/party/member/point/echoPartyMemberPoint', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
if (res.data.length > 0) {
let _info = res.data[0]
const info = {
..._info,
baseOptions: _info.baseOptions.length > 0 ? _info.baseOptions.split(',') : [],
reviewOptions: _info.reviewOptions.length > 0 ? _info.reviewOptions.split(',') : [],
inspireOptions: _info.inspireOptions.length > 0 ? _info.inspireOptions.split(',') : [],
warnOptions: _info.warnOptions.length > 0 ? _info.warnOptions.split(',') : []
}
for (const n in info) {
this.form[n] = info[n]
}
} else {
this.$refs['ruleForm'].resetFields()
this.form.quarter = this.quarter
this.form.year = this.year
}
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
}
}
</script>
<style lang="scss" scoped>
.flex-div {
display: flex;
align-items: center;
}
.mb20 {
margin-bottom: 20px;
}
.mr10 {
margin-right: 10px;
}
.pdl74 {
padding-left: 74px;
}
.wd-wr {
/deep/ .el-form-item__content {
width: calc(100% - 140px);
}
/deep/ .el-checkbox {
margin-right: 10px;
font-weight: 400;
// line-height: 20px;
.el-checkbox__label {
padding-left: 5px;
}
}
}
.input-width {
width: 160px;
}
</style>

389
src/views/modules/communityParty/partyOrg/centerMember.vue

@ -0,0 +1,389 @@
<template>
<div>
<el-dialog :title="'党员中心户'"
:visible="dlgShow"
:close-on-click-modal="false"
@close="handleDlgClose">
<div>
<el-button type="primary" @click="handleAddBtnClick">新增</el-button>
</div>
<el-table :data="bindingDatas"
row-key="id"
border
style="width: 100%">
<el-table-column label="党员中心户" align="center" prop="partyMemberName">
<template slot-scope="scope">
<el-select v-model="scope.row.partyMemberId"
v-if="scope.row.isEdit"
filterable>
<el-option v-for="cm in centerMemberSelectorOptions"
:key="cm.id"
:value="cm.id"
:label="cm.name">
</el-option>
</el-select>
<div v-else>{{ scope.row.partyMemberName }}</div>
</template>
</el-table-column>
<el-table-column label="联系家庭" align="center" prop="partyMemberName">
<template slot-scope="scope">
<!--v-model="scope.row.bindedHouses"-->
<el-cascader :options="bindingHouseOptions"
clearable
style="width: 300px"
placeholder="请选择"
v-if="scope.row.isEdit"
@change=""
:props="bindingProps">
</el-cascader>
<div v-else>{{ scope.row.bindedHousesStr }}</div>
</template>
</el-table-column>
<el-table-column label="联系家庭" align="center">
<template slot-scope="scope">
<el-button type="primary" @click="handleSaveBtnClicked(scope.row)" v-if="scope.row.isEdit">保存</el-button>
<el-button type="primary" @click="handleCancelBtnClicked(scope.row)" v-if="scope.row.isEdit">取消
</el-button>
<el-button type="primary" @click="handleDeleteBtnClicked(scope.row)" v-if="!scope.row.isEdit">删除
</el-button>
<el-button type="primary" @click="handleEditBtnClicked(scope.row)" v-if="!scope.row.isEdit">编辑</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import { requestGet, requestPost } from '@/js/dai/request'
import { EpmetResultResolver } from '@/js/epmet-result-resolver'
export default {
mounted () {
//
this.epmetResultResolver = new EpmetResultResolver(this)
},
data () {
return {
dlgShow: false,
partyOrgId: null,
epmetResultResolver: null,
bindingDatas: [], //
centerMemberSelectorOptions: [], //
bindingHouseOptions: [], //
rowInEdit: null, //
bindingProps: {
lazy: true,
lazyLoad: ((node, resolve) => {
this.handleTreeNodeClick(node, resolve)
}),
value: 'value',
label: 'label',
checkStrictly: false,
multiple: true
},
formData: {
partyMemberId: null,
bindingHouseIds: []
}
}
},
methods: {
/**
* 初始化
*/
init (partyOrgId) {
this.dlgShow = true
this.partyOrgId = partyOrgId
//
this.$nextTick(async () => {
// await this.loadCenterMember4Selector(partyOrgId)
// await this.loadHousesTree4Select(partyOrgId)
await this.loadBindedDatas(partyOrgId)
})
},
/**
* "添加"按钮点击事件
*/
handleAddBtnClick () {
//
let lastRow = this.bindingDatas[this.bindingDatas.length - 1]
if (lastRow && lastRow.isEdit) {
this.$message.warning('请逐行填写')
return
}
//
let newRow = {
partyMemberId: null,
bindedHouses: [],
isEdit: true
}
this.bindingDatas.push(newRow);
this.$nextTick(async () => {
//
await this.loadCenterMember4Selector(this.partyOrgId, 'create')
await this.loadHousesTree4Select(this.partyOrgId)
})
},
/**
* 关联家庭级联下拉框选中事件
* @returns {Promise<void>}
*/
async handleTreeNodeClick(node, resolve) {
debugger
console.log('要编辑的数据:', this.rowInEdit)
if (node.root) {
this.loadHousesTree4Select(this.partyOrgId)
} else {
node.children.length = 0
let rstArr = await this.loadNextBindingHouseTreeLevel(node.data.nodeType, node.value)
console.log('返回的下一级数据:', rstArr);
resolve(rstArr)
}
},
/**
* 加载关联家庭的树
* @param partyOrgId
* @returns {Promise<void>}
*/
async loadHousesTree4Select (partyOrgId) {
let url = '/actual/base/party/org/centerMember/listQuarterOptionsByPartyOrgId'
let rst = await requestGet(url, {
partyOrgId: partyOrgId
})
this.epmetResultResolver.success((data) => {
for (let e of data) {
//
e.nodeType = 'quarters'
}
this.bindingHouseOptions = data
}).parse(rst)
},
/**
* 加载关联家庭列表
*/
async loadNextBindingHouseTreeLevel(currNodeType, nodeValue) {
let url
let param
let nextNodeType
if (currNodeType === 'quarters') {
url = '/actual/base/communityBuilding/buildingoption'
nextNodeType = 'building'
param = {
quartersId: nodeValue
}
} else if (currNodeType === 'building') {
url = '/actual/base/communityBuildingUnit/unitoption'
nextNodeType = 'unit'
param = {
buildingId: nodeValue
}
} else if (currNodeType === 'unit') {
url = '/actual/base/communityHouse/listHouses'
nextNodeType = 'house'
param = {
buildingUnitId: nodeValue
}
} else {
return []
}
console.log('节点数据:', currNodeType, nodeValue);
let rst = await requestPost(url, param)
let childrenNodes ;
this.epmetResultResolver.success((data) => {
if (nextNodeType === 'house') {
data = data.list
}
for (let e of data) {
//
e.nodeType = nextNodeType
if (nextNodeType === 'house') {
e.label = e.houseName
e.value = e.houseId
e.leaf = true
}
}
// node.children.length = 0
childrenNodes = data;
}).parse(rst);
return childrenNodes;
},
/**
* 关联家庭下拉框选中变更事件
*/
// handlebindingCascaderChange (selectedNodes) {
// this.formData.bindingHouseIds = selectedNodes.map(n => {
// return n[n.length - 1]
// })
// },
/**
* 保存按钮点击事件
*/
handleSaveBtnClicked (row) {
let bindedHouseIds = row.bindedHouses.map(h => h[h.length - 1])
this.saveCenterMemberbindingHome(row.partyMemberId, bindedHouseIds)
},
/**
* 取消按钮点击事件
*/
handleCancelBtnClicked (row) {
console.log(row)
if (row.isNew) {
//
this.bindingDatas.pop()
} else {
//
row.isEdit = false
}
},
/**
* 删除按钮点击事件
*/
async handleDeleteBtnClicked (row) {
this.$confirm('删除后无法恢复,是否确定?', '警告').then(async () => {
let url = '/actual/base/party/member/centerMember/deleteByPartyMemberId/' + row.partyMemberId
let rst = await requestPost(url, {})
this.epmetResultResolver.success((data) => {
this.$message.success('删除成功')
this.loadBindedDatas(this.partyOrgId)
}).parse(rst)
})
},
/**
* 编辑按钮点击事件
*/
async handleEditBtnClicked (row) {
await this.loadHousesTree4Select(this.partyOrgId)
await this.loadCenterMember4Selector(this.partyOrgId, 'edit')//
row.isEdit = true
this.rowInEdit = row;
// for (let house of row.bindedHouses) {
// let pathIds = house.bindedHouses.pathIds;
// // this.rescureLoadTree(pathIds, 0);
// }
},
/**
* 递归加载
*/
// rescureLoadTree(pathIds, currDepth) {
// let objectId = pathIds[currDepth];
// let currNodeType;
// if (currDepth === 0) {
// currNodeType = 'quarters';
// } else if (currDepth === 1) {
// currNodeType = 'building';
// } else if (currDepth === 2) {
// currNodeType = 'unit';
// } else if (currDepth === 3) {
// currNodeType = 'house';
// }
//
// let childrenNodes = this.loadNextBindingHouseTreeLevel(currNodeType, objectId);
//
// },
/**
* 打扫战场
*/
handleDlgClose () {
this.dlgShow = false
this.bindingDatas.length = 0
this.centerMemberSelectorOptions.length = 0
},
/**
* 为中心户下拉框提供选项
* bindingHomeOptions
*/
async loadCenterMember4Selector (partyOrgId, purpose) {
let url = '/actual/base/party/member/centerMember/centerMemberList4CreateSelect'
let rst = await requestGet(url, {
partyOrgId: partyOrgId,
purpose: purpose
})
this.epmetResultResolver.success((data) => {
this.centerMemberSelectorOptions = data
}).parse(rst)
},
/**
* 加载已经绑定的数据
* @returns {Promise<void>}
*/
async loadBindedDatas (partyOrgId) {
let url = '/actual/base/party/member/centerMember/listCenterMemberBindingHouses'
let rst = await requestGet(url, {
partyOrgId: partyOrgId
})
this.epmetResultResolver.success((data) => {
for (let row of data) {
let bindedHouses = row.bindedHouses
let houseNames = bindedHouses.map(e => e.houseName)
row.bindedHousesStr = houseNames.join(',')
row.isEdit = false
row.isNew = false
}
this.bindingDatas = data;
}).parse(rst)
},
/**
* 保存党员中心户-家庭绑定关系
* @param partyMemberId
* @param bindedHouseIds
*/
async saveCenterMemberbindingHome (partyMemberId, bindedHouseIds) {
let url = '/actual/base/party/member/centerMember/createCenterMemberBindingHome'
let rst = await requestPost(url, {
partyMemberId: partyMemberId,
partyOrgId: this.partyOrgId,
bindedHouseIds: bindedHouseIds
})
this.epmetResultResolver.success(async (data) => {
await this.loadBindedDatas(this.partyOrgId)
// +
await this.loadCenterMember4Selector(this.partyOrgId, 'create')
await this.loadHousesTree4Select(this.partyOrgId)
}).parse(rst)
},
}
}
</script>

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

@ -17,6 +17,10 @@
v-if="updateDlgShow"
:visible.sync="updateDlgShow"
@refreshTree="handleLoadTreeRoot"></Update>
<CenterMember ref="centerMember"
v-if="centerMemberDlgShow"
@refreshTree="handleLoadTreeRoot"></CenterMember>
<!--负责人对话框-->
<SelectPrincipal ref="SelectPrincipal"
@ -68,6 +72,11 @@
size="small"
class="div-table-button--detail">{{ scope.row.principalPositionName }}</el-button>
<el-button type="text"
@click="handleSkip2PartyMemberPage(scope.row)"
size="small"
class="div-table-button--detail">{{ scope.row.partyOrgLevel === 8 ? '党员中心户' : '查看党员' }}</el-button>
<el-button type="text"
@click="handleCreateSubPartyOrg(scope.row)"
size="small"
@ -95,6 +104,7 @@ import { requestGet, requestPost } from "@/js/dai/request";
import { EpmetResultResolver } from '@/js/epmet-result-resolver'
import Create from './create'
import Update from './update'
import CenterMember from './centerMember'
import SelectPrincipal from './select_principal.vue'
// import lookMember from './lookMember'
import { mapGetters } from 'vuex'
@ -105,6 +115,7 @@ export default {
epmetResultResolver: null,
selectPrincipalDlgShow: false, //
centerMemberDlgShow: false, //
createDlgShow: false, //
updateDlgShow: false, //
editDlgShow: false, //
@ -113,7 +124,7 @@ export default {
}
},
components: {
TableTreeColumn, Create, Update, SelectPrincipal
TableTreeColumn, Create, Update, SelectPrincipal, CenterMember
},
computed: {
...mapGetters(['clientHeight', 'iframeHeight']),
@ -159,6 +170,28 @@ export default {
this.$refs['SelectPrincipal'].init(row.id, row.principalId, row.partyOrgLevel, row.orgId, row.principalPositionName);
});
},
/**
* 查看党员
*/
handleSkip2PartyMemberPage(row) {
if (row.partyOrgLevel === 8) {
//
this.centerMemberDlgShow = true;
this.$nextTick(() => {
this.$refs.centerMember.init(row.id);
})
return
}
//
this.$router.push({
path: '/main/communityParty-members-memberList',
query: {
partyOrgId: row.id
}
});
},
/**
* 点击"新增"
@ -242,8 +275,8 @@ export default {
})
this.epmetResultResolver.success((data) => {
row.children = data;
resolve(row.children);
row.children = data; //
resolve(row.children); //
// this.partyOrgTree.push(data);
}).parse(rst);

Loading…
Cancel
Save