提交 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-alert">
<div class="organization-left">
<div>已选:{{allSelect.length}}个机构</div>
<div class="hcd">
<div class="tag-list">
<el-tag
:key="item.id"
v-for="item in allSelect"
closable
:disable-transitions="false"
style="marginTop:10px;"
@close="handleClose(item)">
{{item.orgName.length > 12 ? item.orgName.slice(0,12)+'...' : item.orgName}}
</el-tag>
</div>
</div>
<el-row justify="space-around" type="flex" class="btn-left">
<el-button type="primary" size="small" @click="addFn">确定添加</el-button>
<el-button size="small" @click="canclefn">取消</el-button>
</el-row>
</div>
<div class="organization-right">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline" >
<el-form-item label>
<el-cascader size="small" ref="cascaderRegion" :options="optionsRegion" :props="props"
v-model="formOrganization.administrativeIdList" @change="handleChangeRegion" filterable change-on-select
placeholder="请选择地区"></el-cascader>
</el-form-item>
<el-form-item>
<el-select size="small" v-model="formOrganization.level" placeholder="全部医院级别">
<el-option v-for="(item, index) in organizationRank" :key="index" :label="item.label" :value="item.id">
</el-option>
</el-select>
</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>
<el-button size="small" type="primary" @click="searchOrganization()">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="resetOrgOrPerson()">重置</el-button>
</el-form-item>
</el-form>
<el-table class="rim" ref="multipleOrganization" :data="tableOrganization" tooltip-effect="dark" @select-all="selectAllOrganization" @select="selectOrganization" >
<el-table-column type="selection" :selectable="selectableTableList" ></el-table-column>
<el-table-column prop="orgName" label="医院名称" align="center"></el-table-column>
<el-table-column prop="orgLevelName" 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>
<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="totalOrganization"></el-pagination>
</div>
</div>
</div>
</template>
<script>
import { openLoading, closeLoading } from "@/utils/utils";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import * as operationData from "@/utils/operation";
import { getCircleProvincesReq } from '@/utils/yqrange/rangeApi';
import { moOption, moOrgSearch, moSave, clearCacheOrg} 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: [],
organizationRank: [],
tableOrganization: new Array(),
currentOrganization: 1,
totalOrganization: 10,
pageSizeOrganization: 2,
selectionList:[],
formOrganization: {
name: "",
administrativeId: "",
administrativeIdList: [],
level: "",
chechAll: true,
pageNum: 1,
pageSize: 10
},
allSelect: []
}
},
created() {
vm = this;
},
async mounted() {
this.clear()
this.initRange();
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
},
methods: {
clear() {
clearCacheOrg(this.circleId)
.then(()=>{
})
.catch((err=>{console.log(err)}))
},
// 多级地区
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;
},
initRange() {
this.getRegionOption();
this.listLevels();
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.level = "";
},
//获取地区
getRegionOption() {
openLoading(vm);
let idType = localStorage.getItem("storageIdType");
getCircleProvincesReq(idType).then(res => {
closeLoading(this);
if (res.code == "000000") {
if (idType == 1) {
vm.optionsRegion = operationData.setRegionOption2(
res.data.provinceList
);
}else{
vm.optionsRegion = operationData.setRegionOption3(
res.data.provinceList
);
}
vm.formOrganization.administrativeIdList.push(vm.optionsRegion[0].value);
vm.getOrganization();
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//获取医院等级
listLevels() {
let req = {};
vm.GET("contents/courseDoctor/listLevels?sysCode=10", req).then(res => {
if (res.code == "000000") {
this.organizationRank = operationData.getLevelList(res.data.list);
} else {
this.organizationRank = [
{
id: "0",
label: "全部医院等级"
}
];
}
});
},
//查询所有的机构列表
getOrganization() {
let idType = localStorage.getItem("storageIdType");
let administrativeIdItem = "";
// 如果是外部用户(2),只能看到所在省份的数据
if(idType == 2){
let optionRegionArray = new Array();
optionRegionArray.push(this.optionsRegion[0].provinceId);
administrativeIdItem = operationData.setAdministrativeId(
optionRegionArray
);
}
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel:"",
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType
};
openLoading(vm);
moOrgSearch(req).then(res => {
closeLoading(this);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.initOrganizationStatus();
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
// 获取机构列表的机构状态(是否被选中)
initOrganizationStatus() {
let tableStatus = this.tableOrganization;
tableStatus.forEach(row => {
if (row.status == 1 || row.status == 2) {
this.$nextTick(function () {
this.$refs.multipleOrganization.toggleRowSelection(row);
this.selectionList.push(row);
});
}
});
},
//机构搜索
getOrganizationChoose() {
let administrativeIdItem = operationData.setAdministrativeId(
this.formOrganization.administrativeIdList
);
if (administrativeIdItem == "000_0"){
administrativeIdItem=""
}
let idType = localStorage.getItem("storageIdType");
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel: this.formOrganization.level,
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType
};
openLoading(vm);
moOrgSearch(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.initOrganizationStatus();
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//选择搜索机构方式
searchOrganization() {
this.formOrganization.pageNum = 1;
let searchForm = this.formOrganization;
if (
searchForm.administrativeId == "0" &&
searchForm.administrativeIdList[
searchForm.administrativeIdList.length - 1
] == "0" &&
searchForm.level == "" &&
searchForm.name == ""
) {
this.searchOrganizationType = "";
this.getOrganization();
} else {
this.searchOrganizationType = "choose";
this.getOrganizationChoose();
}
},
//重置机构、人员查询
resetOrgOrPerson() {
vm.formOrganization.name = "";
vm.formOrganization.administrativeId = vm.optionsRegion[0].id;
vm.formOrganization.administrativeIdList = [];
vm.formOrganization.administrativeIdList.push(vm.optionsRegion[0].value);
vm.formOrganization.level = "";
vm.formOrganization.pageNum = 1;
vm.searchOrganization();
},
// 选择地区
handleChangeRegion(value) {
let areaId = "000";
for (let i = 0; i < value.length; i++) {
areaId += "_" + value[i];
}
vm.administrativeValue = areaId;
},
// 更改每页显示的数据数量
handleSizeOrganization(val) {
console.log(`每页 ${val} 条`);
this.formOrganization.pageSize = val;
this.searchOrganization();
},
// 更改当前页数
handleCurrentOrganization(val) {
//console.log(`当前页: ${val}`);
this.formOrganization.pageNum = val;
if (this.searchOrganizationType == "choose") {
this.getOrganizationChoose();
} else {
this.getOrganization();
}
},
//机构table中勾选一页
selectAllOrganization(selection) {
this.selectionList = selection;
let setList = [];
let selectList = [];
for (let i = 0; i < vm.tableOrganization.length; i++) {
if (vm.tableOrganization[i].status != 2) {
setList.push(vm.tableOrganization[i].id);
}
}
for (let j = 0; j < selection.length; j++) {
selectList.push(selection[j].id);
}
let intersect = operationData.getIntersect(setList, selectList);
let typeStatus = 0;
if (intersect.length > 0) {
typeStatus = 1;
}
// let = this.$refs.multipleTable.selection
console.log(selection, setList, selectList);
if (setList.length > 0) {
let req = {
ids: setList,
circleId: this.circleId,
type: typeStatus
};
openLoading(vm);
moOption(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.checkToList(req.type,vm.tableOrganization)
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
}
},
//机构table中勾选一个
selectOrganization(selection, row) {
this.selectionList = selection;
let flag = false;
for (let i = 0; i < selection.length; i++) {
if (selection[i].id == row.id) {
flag = true;
}
}
let req = {
ids: [row.id],
circleId: this.circleId,
type: flag === false ? 0 : 1
};
openLoading(vm);
moOption(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.checkToList(req.type,row)
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
selectableTableList(row, index) {
// if (this.status4Flag == 1) {
if (row.status == 2) {
return false;
}
return true;
// }
// return true;
},
// 通过check改变展示的已选中的数据列表
checkToList(type,item) {
if (type) {
if (Array.isArray(item)) {
this.allSelect = this.unique([...this.allSelect,...item])
} else {
this.allSelect.push(item)
}
} else {
if (Array.isArray(item)) {
for(var i = this.allSelect.length -1; i >= 0 ; i--){
for(let j = item.length -1; j >= 0; j--) {
if (this.allSelect[i] && item[j] && this.allSelect[i].id == item[j].id) {
this.allSelect.splice(i,1)
}
}
}
} else {
for(let i = this.allSelect.length-1; i >=0; i--) {
if (this.allSelect[i].id == item.id) {
this.allSelect.splice(i,1)
}
}
}
}
},
// 去重
unique(arr) {
let hashTable = {};
let newArr = [];
for(let i=0,l=arr.length;i<l;i++) {
if(!hashTable[arr[i].id]) {
hashTable[arr[i].id] = true;
newArr.push(arr[i]);
}
}
return newArr;
},
//删除已选中的tag
handleClose(item) {
this.selectOrganization([],item)
this.$refs.multipleOrganization.toggleRowSelection(item);
},
// 确定添加
addFn() {
if (!(this.allSelect&& this.allSelect.length)) {
this.$message.error('已选列表为空');
return
}
let params = {
circleId: this.circleId
}
moSave(params)
.then(() => {
this.$emit('addOrg')
})
.catch(() => {
this.$message.error('保存失败,请重试');
})
},
// 取消
canclefn() {
this.$emit('handleClose')
}
}
}
</script>
<style lang="scss" scoped>
.organization-alert {
display: flex;
background: #fff;
width: 100%;
padding: 10px;
.organization-left {
width: 20%;
border-right: 1px solid #ddd;
margin-right: 20px;
display: flex;
flex-direction: column;
.hcd {
flex: 1;
overflow: hidden;
.tag-list {
margin-top: 20px;
margin-bottom: 40px;
display: table-caption;
overflow-y: scroll;
max-height: 500px;
}
}
.btn-left {
height: 40px;
margin-bottom: 20px;
}
}
.organization-right {
flex: 1;
.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>
<template>
<div class="organization">
<el-row type="flex" class="row-bg" align="middle">
<el-col :span="6" class="add-organization" >
<i class="el-icon-circle-plus-outline" @click="dialogOrgFn()"></i>
<i class="text" @click="dialogOrgFn()">添加机构</i>
</el-col>
<el-col :span="18" class="organization-search">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline" >
<el-form-item label>
<el-cascader size="small" ref="cascaderRegion" :options="optionsRegion" :props="props"
v-model="formOrganization.administrativeIdList" @change="handleChangeRegion" filterable change-on-select
placeholder="请选择地区"></el-cascader>
</el-form-item>
<el-form-item>
<el-select size="small" v-model="formOrganization.level" placeholder="全部医院级别">
<el-option v-for="(item, index) in organizationRank" :key="index" :label="item.label" :value="item.id">
</el-option>
</el-select>
</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>
<el-button size="small" type="primary" @click="searchOrganization()">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="resetOrgOrPerson()">重置</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-table class="rim" ref="multipleOrganization" :data="tableOrganization" tooltip-effect="dark" style="width: 100%">
<el-table-column prop="orgName" label="医院名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="orgLevelName" 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
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="totalOrganization"></el-pagination>
</div>
<el-dialog
title="添加机构"
:visible.sync="dialogOrg"
width="80%"
top="5vh"
:before-close="handleClose">
<check-org
:circleId='circleId'
:roleType='roleType'
@addOrg="addOrg"
@handleClose="handleClose">
</check-org>
</el-dialog>
</div>
</template>
<script>
import { openLoading, closeLoading } from "@/utils/utils";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import * as operationData from "@/utils/operation";
import { getprovinces, moRelSearch, morDeleteOrg } from '@/utils/yqrange/memberApi';
import checkOrg from './checkOrg'
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: [],
organizationRank: [],
tableOrganization: new Array(),
currentOrganization: 1,
totalOrganization: 10,
pageSizeOrganization: 2,
selectionList:[],
formOrganization: {
name: "",
administrativeId: "",
administrativeIdList: [],
level: "",
chechAll: true,
pageNum: 1,
pageSize: 10
},
dialogOrg: false
}
},
components: {
checkOrg
},
created() {
vm = this;
},
mounted() {
this.initRange();
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
},
methods: {
initRange() {
this.getRegionOption();
this.listLevels();
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.level = "";
},
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;
},
//获取地区
getRegionOption() {
openLoading(vm);
let idType = localStorage.getItem("storageIdType");
getprovinces(idType).then(res => {
closeLoading(this);
if (res.code == "000000") {
if (idType == 1) {
vm.optionsRegion = operationData.setRegionOption2(
res.data.provinceList
);
}else{
vm.optionsRegion = operationData.setRegionOption3(
res.data.provinceList
);
}
vm.formOrganization.administrativeIdList.push(vm.optionsRegion[0].value);
vm.getOrganization();
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//机构搜索
getOrganizationChoose() {
let administrativeIdItem = operationData.setAdministrativeId(
this.formOrganization.administrativeIdList
);
if (administrativeIdItem == "000_0"){
administrativeIdItem=""
}
let idType = localStorage.getItem("storageIdType");
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel: this.formOrganization.level,
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType
};
openLoading(vm);
moRelSearch(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.setOrgTotal()
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//查询机构列表
getOrganization() {
let idType = localStorage.getItem("storageIdType");
let administrativeIdItem = "";
// 如果是外部用户(2),只能看到所在省份的数据
if(idType == 2){
let optionRegionArray = new Array();
optionRegionArray.push(this.optionsRegion[0].provinceId);
administrativeIdItem = operationData.setAdministrativeId(
optionRegionArray
);
}
// let administrativeIdItem = "";
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel:"",
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType
};
openLoading(vm);
moRelSearch(req).then(res => {
closeLoading(this);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.setOrgTotal()
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//获取医院等级
listLevels() {
let req = {};
vm.GET("contents/courseDoctor/listLevels?sysCode=10", req).then(res => {
if (res.code == "000000") {
this.organizationRank = operationData.getLevelList(res.data.list);
} else {
this.organizationRank = [
{
id: "0",
label: "全部医院等级"
}
];
}
});
},
//选择搜索机构方式
searchOrganization() {
this.formOrganization.pageNum = 1;
let searchForm = this.formOrganization;
if (
searchForm.administrativeId == "0" &&
searchForm.administrativeIdList[
searchForm.administrativeIdList.length - 1
] == "0" &&
searchForm.level == "" &&
searchForm.name == ""
) {
console.log("wei")
this.searchOrganizationType = "";
this.getOrganization();
} else {
console.log("choose")
this.searchOrganizationType = "choose";
this.getOrganizationChoose();
}
},
//重置机构、人员查询
resetOrgOrPerson() {
vm.formOrganization.name = "";
// vm.formOrganization.administrativeId = "0";
// vm.formOrganization.administrativeIdList = ["0"];
vm.formOrganization.administrativeId = vm.optionsRegion[0].id;
vm.formOrganization.administrativeIdList = [];
vm.formOrganization.administrativeIdList.push(vm.optionsRegion[0].value);
vm.formOrganization.level = "";
vm.formOrganization.pageNum = 1;
vm.searchOrganization();
},
handleChangeRegion(value) {
let areaId = "000";
for (let i = 0; i < value.length; i++) {
areaId += "_" + value[i];
}
vm.administrativeValue = areaId;
console.log(value, vm.administrativeValue);
},
//机构table修改
handleSizeOrganization(val) {
console.log(`每页 ${val} 条`);
this.formOrganization.pageSize = val;
this.searchOrganization();
},
handleCurrentOrganization(val) {
//console.log(`当前页: ${val}`);
this.formOrganization.pageNum = val;
if (this.searchOrganizationType == "choose") {
this.getOrganizationChoose();
} else {
this.getOrganization();
}
},
detel(item) {
this.$confirm(`删除后${item.orgName}将无法访问本圈, 确定删除么?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let params = {
circleId: this.circleId,
orgIds: [item.id]
}
morDeleteOrg(params).then((res) => {
if (res.code == "000000") {
this.$message({
type: 'success',
message: '删除成功!'
});
this.searchOrganization()
}
}).catch(() => {
this.$message.error('删除失败,请稍后重试');
})
}).catch((err) => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
setOrgTotal() {
vm.$emit('setOrgTotal',vm.totalOrganization)
},
dialogOrgFn() {
this.dialogOrg = true
},
handleClose() {
this.dialogOrg = false
},
addOrg() {
this.dialogOrg = false
this.initRange()
}
}
}
</script>
<style >
.organization .el-dialog {
max-height: 90%;
overflow: scroll;
}
</style>
<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>
<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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册