提交 f2a6e05b 编写于 作者: haochangdi's avatar haochangdi

增加成员管理相关

上级 76e854a8
<template>
<div class="member-management screenSet" id="screenSet">
<el-row type="flex" justify="space-around" class="mm-nav" align="middle">
<el-col :span="20">
<el-button :type="orgbtn" round class="margin-l" @click="checkTab(1)">可访问本圈的机构({{orgTotal}})</el-button>
<el-button :type="plebtn" round class="margin-l" @click="checkTab(2)">可访问本圈的人员({{pleTotal}})</el-button>
<el-link href="https://element.eleme.io" target="_blank" class="black">黑名单</el-link>
</el-col>
<el-col :span="4" class="mm-r">
<el-link href="https://element.eleme.io" target="_blank" >设置管理员</el-link>
</el-col>
</el-row>
<div class="member-main">
<org
v-show="tab == 1"
:circleId='circleId'
:roleType='roleType'
@setOrgTotal="setOrgTotal"
></org>
<renyaun
v-show="tab == 2"
:circleId='circleId'
:roleType='roleType'
@setPleTotal="setPleTotal"
></renyaun>
</div>
</div>
</template>
<script>
import * as commonUtil from "../utils/utils";
import org from '@/components/yqrange/member-management/org'
import renyaun from '@/components/yqrange/member-management/renyaun'
export default {
props: {
circleId: {
type: Number | String,
default: 1
},
roleType: {
type: Number | String,
default: 1
},
},
data() {
return {
tab: 1,
orgbtn: 'primary',
plebtn: '',
orgTotal: 0,
pleTotal: 0
}
},
components: {
org,
renyaun
},
created() {},
// 挂载到Dom完成时
mounted: function() {
commonUtil.resizeHeight();
},
methods: {
checkTab(v) {
this.tab = v
if (v == 1) {
this.orgbtn = 'primary'
this.plebtn = ''
} else {
this.orgbtn = ''
this.plebtn = 'primary'
}
},
setOrgTotal(n) {
this.orgTotal = n
},
setPleTotal(n) {
this.pleTotal = n
}
}
}
</script>
<style lang="scss" scoped>
.member-management {
padding: 10px;
background: #fff;
.mm-nav {
.margin-l {
margin-left: 20px;
}
.black {
margin-left: 30px;
}
.mm-r {
text-align: right;
padding-right: 20px;
}
}
.member-main {
margin-top: 20px;
}
}
</style>
此差异已折叠。
此差异已折叠。
<template>
<div class="organization">
<el-row type="flex" class="row-bg" align="middle">
<el-col :span="4" class="add-organization">
<i class="el-icon-circle-plus-outline"></i>
<i class="text">添加人员</i>
</el-col>
<el-col :span="20" class="organization-search">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline" >
<el-form-item label="机构">
<el-input style="width:140px;" size="small" v-model="formOrganization.orgName" placeholder="请输入机构名称"></el-input>
</el-form-item>
<el-form-item label="姓名">
<el-input style="width:140px;" size="small" v-model="formOrganization.name" placeholder="请输入人员姓名"></el-input>
</el-form-item>
<el-form-item label="来源">
<el-select size="small" v-model="formOrganization.source" placeholder="请选择来源">
<el-option v-for="(item, index) in sourceList" :key="index" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="getList()">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="reset()">重置</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-table class="rim" ref="multipleOrganization" :data="peoplesDtoList" tooltip-effect="dark" style="width: 100%">
<el-table-column prop="name" label="人员" min-width="100" align="center"></el-table-column>
<el-table-column prop="department" label="所属科室" align="center"></el-table-column>
<el-table-column prop="hospital" label="所属医院" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<el-table-column prop="sourceName" label="来源" align="center"></el-table-column>
<el-table-column
fixed="right"
label="操作"
align="center"
width="140">
<template slot-scope="scope">
<el-button @click="detel(scope.row)" type="text" size="small" style="color:red">删除</el-button>
</template>
</el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../../assets/image/no-content1.png">
<p>没有人员信息</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination background @size-change="handleSizeOrganization" @current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum" :page-sizes="[10, 20, 40]" :page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="totalPeople"></el-pagination>
</div>
</div>
</template>
<script>
import * as operationData from "@/utils/operation";
import { openLoading, closeLoading } from "@/utils/utils";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import { mpRelSearch, mprDeleteOrg } from '@/utils/yqrange/memberApi';
let vm = null;
export default {
props: {
circleId: {
type: Number | String,
default: 1
},
roleType: {
type: Number | String,
default: 1
},
},
data() {
return {
props: {
lazy: true,
lazyLoad(node, resolve) {
const { level } = node;
if (node.level == 1) {
let req = {
provinceId: node.data.value
};
vm.GET("basic-data/position/cities", req).then(res => {
let newData = vm.setMoreOption(res.data.cityList, "cities");
resolve(newData);
});
} else if (node.level == 2) {
let req = {
cityId: node.data.value
};
vm.GET("basic-data/position/counties", req).then(res => {
let newData = vm.setMoreOption(res.data.countyList, "counties");
resolve(newData);
});
} else if (node.level == 3) {
let req = {
countyId: node.data.value
};
vm.GET("basic-data/position/towns", req).then(res => {
let newData = vm.setMoreOption(res.data.townList, "towns");
resolve(newData);
});
}
}
},
administrativeValue: "",
optionsRegion: [],
sourceList: [
{
label: '全部',
value: 0
},
{
label: '从圈内机构人员',
value: 1
},
{
label: '从人员白名单',
value: 2
},
],
peoplesDtoList: [],
totalPeople: 10,
selectionList:[],
formOrganization: {
name: '',
orgName: '',
source: 0,
pageNum: 1,
pageSize: 10
}
}
},
created() {
vm = this;
},
mounted() {
this.initRange();
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
},
methods: {
initRange() {
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.orgName = "";
this.formOrganization.source = 0
this.getList()
},
setMoreOption(data, type) {
let option = [];
for (let i = 0; i < data.length; i++) {
let obj = data[i];
if (type == "cities") {
obj.label = data[i].cityName;
obj.value = data[i].cityId;
} else if (type == "counties") {
obj.label = data[i].countyName;
obj.value = data[i].countyId;
} else if (type == "towns") {
obj.label = data[i].townName;
obj.value = data[i].townId;
obj.leaf = true;
}
option.push(obj);
}
return option;
},
getList() {
let idType = localStorage.getItem("storageIdType");
let req = {
circleId: this.circleId,
countryFlag: true,
name: this.formOrganization.name.trim(),
orgName: this.formOrganization.orgName.trim(),
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
source: this.formOrganization.source,
};
openLoading(vm);
mpRelSearch(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.peoplesDtoList = res.data.peoplesDtoList;
this.totalPeople = res.data.total;
this.setPleTotal()
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//重置机构、人员查询
reset() {
this.initRange()
},
//机构table修改
handleSizeOrganization(val) {
console.log(`每页 ${val} 条`);
this.formOrganization.pageSize = val;
this.getList();
},
handleCurrentOrganization(val) {
//console.log(`当前页: ${val}`);
this.formOrganization.pageNum = val;
this.getList();
},
detel(item) {
this.$confirm(`删除后${item.name}将无法访问本圈, 确定删除么?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let params = {
circleId: this.circleId,
docIds: [item.id]
}
mprDeleteOrg(params).then((res) => {
this.$message({
type: 'success',
message: '删除成功!'
});
this.getList()
}).catch(() => {
this.$message.error('删除失败,请稍后重试');
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
setPleTotal() {
this.$emit('setPleTotal',this.totalPeople)
}
}
}
</script>
<style lang="scss" scoped>
.organization {
.add-organization {
margin-left: 40px;
line-height: 20px;
cursor: pointer;
i {
font-size: 18px;
margin-right: 2px;
}
}
.organization-search {
margin-right: 20px;
text-align: right;
}
}
</style>
import fetch from '../fetch';
import { getBaseUrl } from '@/utils/index'
let headers = {
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('storageToken'),
};
export const moRelSearch = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/related/search`),
method: 'post',
data: params,
description: '查询机构-圈子已选机构列表',
})
};
export const morDeleteOrg = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/related/deleteOrg`),
method: 'post',
data: params,
description: '删除机构- 圈子已选机构',
})
};
export const moOption = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/option`),
method: 'post',
data: params,
description: '添加机构- 勾选操作',
})
};
export const moSave = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/save`),
method: 'post',
data: params,
description: '添加机构-保存',
})
};
export const moOrgSearch = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/search`),
method: 'post',
data: params,
description: '添加机构-查询所有机构列表',
})
};
export const clearCacheOrg = (circleId) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/option/clearCache/${circleId}`),
method: 'get',
description: '添加机构- 勾选操作清除缓存',
})
};
export const mpRelSearch = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/people/related/search`),
method: 'post',
data: params,
description: '查询人员白名单- 圈子已选人员列表',
})
};
export const mprDeleteOrg= (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/people/related/deletePeople`),
method: 'post',
data: params,
description: '删除人员白名单- 圈子已选人员',
})
};
export const getprovinces = (idType) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/provinces/idType/${idType}`),
method: 'get',
description: '根据用户ID 获取选人时省市',
})
};
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册