提交 c16a571b 编写于 作者: zhentian.jia's avatar zhentian.jia

角色圈定范围

上级 bbef0209
......@@ -21,6 +21,8 @@ const nameList = r => require.ensure([], () => r(require('../views/learning/name
const dataAlignment = r => require.ensure([], () => r(require('../views/learning/data-alignment.vue')), 'data-alignment')
const exportDownload = r => require.ensure([], () => r(require('../views/learning/export-download.vue')), 'export-download')
const itemShield = r => require.ensure([], () => r(require('../views/education/item-shield.vue')), 'item-shield')
export default [{
path: '/',
component: App,
......@@ -77,6 +79,10 @@ export default [{
path: '/export-download',
component: exportDownload
},
{
path: '/item-shield',
component: itemShield,
},
{
path: '/msg-push',
component: msgPush,
......
......@@ -236,5 +236,19 @@ const vueFilter = {
let time = value +'分钟';
return time;
},
shieldStatus: (value) => {
if(value == 0) {
return '已屏蔽';
} else if(value == 1) {
return '未屏蔽';
}
},
shieldButton: (value) => {
if(value == 0) {
return '取消屏蔽';
} else if(value == 1) {
return '屏蔽';
}
},
}
export default vueFilter
\ No newline at end of file
<template>
<div class="item-shield">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb>
<div class="component-content screenSet" id="screenSet">
<el-radio-group v-model="shieldType">
<el-radio-button label="1">屏蔽机构</el-radio-button>
<el-radio-button label="2">屏蔽人员</el-radio-button>
</el-radio-group>
<el-button type="primary" size="small">完成</el-button>
<el-row :gutter="30" class="row" type="flex" style="margin-top: 10px;">
<el-form :model="formInline" ref="formInline" label-width="75px" class="form-inline">
<el-col :span="6">
<el-form-item label="所属机构:">
<el-input size="small" v-model="formInline.organizationName" placeholder="请输入机构名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="姓名:">
<el-input size="small" v-model="formInline.userName" placeholder="请输入人员名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="状态:">
<el-select size="small" v-model="formInline.status" placeholder="请选择状态">
<el-option
v-for="(item, index) in statusList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" style="padding:0;text-align:right;padding-right:10px;">
<el-button type="primary" size="small" @click="searchList()">搜索</el-button>
</el-col>
</el-form>
</el-row>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="userName" label="人员名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="hospitalName" label="所属医院" align="center"></el-table-column>
<el-table-column prop="departmentName" label="所属科室" align="center" min-width="100"></el-table-column>
<el-table-column prop="province" label="所属省份" align="center"></el-table-column>
<el-table-column prop="city" label="所属城市" align="center"></el-table-column>
<el-table-column prop="county" label="所属区县" align="center"></el-table-column>
<el-table-column fixed="right" label="状态" width="200" align="center">
<template slot-scope="scope">{{ scope.row.status | shieldStatus }}</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="200" align="center">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="changeStatus(scope.row)"
>{{ scope.row.status | shieldButton }}</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import BreadCrumb from "../../components/breadcrumb.vue";
import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils";
let vm = null;
export default {
components: {
BreadCrumb
},
data() {
return {
curmbFirst: "教培项目",
curmbSecond: "屏蔽",
shieldType: 1,
formInline: {
organizationName: "",
userName: "",
status: "",
pageNo: 1,
pageSize: 10
},
statusList: [
{
label: "屏蔽",
value: 0
},
{
label: "取消屏蔽",
value: 1
}
],
tableData: []
};
},
computed: {
...mapGetters(["_token"])
},
created() {
vm = this;
this.search();
},
// 挂载到Dom完成时
mounted: function() {
commonUtil.resizeHeight();
window.onbeforeunload = function(e) {
return "";
};
},
beforeRouteLeave(to, from, next) {
console.log(from);
next(false)
this.$confirm('您将离开本页面,是否进行数据保存?', '提示', {
distinguishCancelAndClose: true,
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.sure();
next()
}).catch(() => {
next()
});
},
beforeDestory() {
if (this.progressVisible) {
this.$confirm("系统可能不会保存您所做的更改。", "离开此页面?", {
confirmButtonText: "离开",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
next();
});
} else {
next();
}
},
methods: {
searchList() {
this.formInline.pageNo = 1;
this.search();
},
search() {
vm.tableData = [
{
userName: "云小鹊",
hospitalName: "测试医院",
departmentName: "呼吸科",
province: "上海市",
city: "上海市",
county: "浦东新区",
status: 0
}
];
},
changeStatus() {
vm.tableData[0].status = 1;
}
}
};
</script>
<style lang="scss">
.item-shield {
.component-content {
padding: 10px;
background: #fff;
}
}
</style>
\ No newline at end of file
......@@ -154,7 +154,7 @@ export default {
});
},
getTableData(data) {
if (vm.formInline.region.length == 3 && vm.organizationNum == 1) {
if (vm.formInline.region.length >= 3 && vm.organizationNum == 1) {
vm.showTable = true;
vm.finishDetail = data.hospitalPeopleList;
} else {
......
......@@ -2,7 +2,8 @@
<div class="item-role-wrap">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond" :curmbThird="curmbThird"></bread-crumb>
<div class="component-content screenSet" id="screenSet">
<div class="header-title">查询条件
<div class="header-title">
查询条件
<el-upload
v-if="activeUser == 'L1'"
class="upload-excel"
......@@ -10,8 +11,9 @@
accept=".xlsx"
multiple
:limit="1"
:before-upload="beforeUpload">
<el-button size="small" >导入角色权限</el-button>
:before-upload="beforeUpload"
>
<el-button size="small">导入角色权限</el-button>
<el-button class="down-button" slot="tip" size="small" @click="download('model')">下载导入模板</el-button>
</el-upload>
</div>
......@@ -26,7 +28,7 @@
:label="item"
:value="item"
></el-option
</el-select> -->
</el-select>-->
<el-input size="small" v-model="formInline.organizationName" placeholder="请输入机构名称"></el-input>
</el-form-item>
</el-col>
......@@ -47,7 +49,7 @@
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="5">
<el-form-item label="所属科室:">
<el-select size="small" v-model="formInline.departmentsName" placeholder="请选择所属科室">
......@@ -59,7 +61,7 @@
></el-option>
</el-select>
</el-form-item>
</el-col> -->
</el-col>-->
<el-col :span="6" style="padding:0;text-align:right;padding-right:10px;">
<el-button type="primary" size="small" @click="searchList()">查询</el-button>
<el-button
......@@ -74,7 +76,7 @@
<el-table :data="tableData" style="width: 100%">
<!-- <el-table-column prop="userId" label="用户ID" align="center"></el-table-column> -->
<el-table-column prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column prop="county" label="所属区县" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="organizationName" label="所属机构" align="center"></el-table-column>
<el-table-column prop="departmentsName" label="科室" align="center"></el-table-column>
<el-table-column prop="projeceRole" label="角色" align="center">
......@@ -84,17 +86,11 @@
</el-table-column>
<el-table-column prop="area" label="负责区域" align="center">
<template slot-scope="scope">
<el-popover
placement="bottom"
title=""
width="200"
trigger="hover"
class="more-text">
<p class="more-text">
{{ scope.row.departmentsName }}
!!!是一段内这是一段内容,这是一段内这是一段内容,这是一段内这是这是一段内容,这是一段内这是一段内容,这是一段内这是一段内容,这是一段内这是一段内容,这是一段内一段内容,这是一段内这是一段内容,这是一段内这是一段内容,这是一段内这是一段内容,这是一段内容,这是一段内容,这是一段内容
<el-popover placement="bottom" title width="200" trigger="hover" class="more-text">
<p class="more-text">
{{ scope.row.regions }}
</p>
<p slot="reference">{{ scope.row.departmentsName }}</p>
<p slot="reference">{{ scope.row.regions }}</p>
</el-popover>
</template>
</el-table-column>
......@@ -122,14 +118,14 @@
type="primary"
size="small"
v-show="showAppend(scope.row.projeceRole)"
@click="addArea()"
@click="addArea(scope.row)"
:disabled="activeUser !== 'L1'"
>追加区域权限</el-button>
</template>
</el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../assets/image/no-content1.png">
<img src="../../assets/image/no-content1.png" />
<p>没有查询到相关结果</p>
</div>
</div>
......@@ -152,11 +148,12 @@
<span class="user-name">"{{ dialog.name }}"</span>
{{ dialog.option }}吗?"
</p>
<p v-else >该用户为此机构仅有的次级负责人,确认需要降级吗?</p> -->
<p v-else >该用户为此机构仅有的次级负责人,确认需要降级吗?</p>-->
<p v-if="numL3 <= 1 && scopeRow.projeceRole == 'L3'" class="dialog-p">
该用户为此机构仅有的次级负责人,确认需要降级吗?
</p>
<p
v-if="numL3 <= 1 && scopeRow.projeceRole == 'L3'"
class="dialog-p"
>该用户为此机构仅有的次级负责人,确认需要降级吗?</p>
<p v-else>
确认将{{ dialog.role }}
<span class="user-name">"{{ dialog.name }}"</span>
......@@ -183,25 +180,27 @@
:visible.sync="dialogSuccess"
width="30%"
class="dialog-success"
center>
<p >本次成功导入 <span class="upload-text">{{ updateNum }}条</span> 数据</p>
center
>
<p>
本次成功导入
<span class="upload-text">{{ updateNum }}条</span> 数据
</p>
<span slot="footer" class="dialog-footer">
<el-button type="primary" size="small" @click="dialogSuccess = false">关闭</el-button>
</span>
</el-dialog>
<el-dialog
title="导入失败"
:visible.sync="dialogFail"
width="30%"
class="dialog-fail"
center>
<el-dialog title="导入失败" :visible.sync="dialogFail" width="30%" class="dialog-fail" center>
<div class="fail-type" v-if="failType == 1">
<p >表格不符合格式要求,请修正后再次导入</p>
<p class="fail-notice"> 仅支持一次导入5000条数据</p>
<p>表格不符合格式要求,请修正后再次导入</p>
<p class="fail-notice">仅支持一次导入5000条数据</p>
</div>
<div class="fail-type" v-if="failType == 2">
<p ><span class="fail-num"> {{ failNum }}条</span> 数据不符合格式要求,请修正后再次导入</p>
<p class="fail-notice"> 仅支持xlsx格式的文件</p>
<p>
<span class="fail-num">{{ failNum }}条</span> 数据不符合格式要求,请修正后再次导入
</p>
<p class="fail-notice">仅支持xlsx格式的文件</p>
<p class="fail-link" @click="download('fail')">下载错误数据></p>
</div>
<span slot="footer" class="dialog-footer">
......@@ -212,17 +211,13 @@
accept=".xlsx"
multiple
:limit="1"
:before-upload="beforeUpload">
<el-button type="primary" size="small" >重新导入</el-button>
:before-upload="beforeUpload"
>
<el-button type="primary" size="small">重新导入</el-button>
</el-upload>
</span>
</el-dialog>
<el-dialog
title="追加区域权限"
:visible.sync="dialogArea"
width="70%"
class="dialog-area"
center>
<el-dialog title="追加区域权限" :visible.sync="dialogArea" width="70%" class="dialog-area" center>
<el-col class="area-choose" :span="15">
<el-tree
default-expand-all
......@@ -248,7 +243,10 @@
</el-tree>
</el-col>
<el-col class="area-choose" :span="8">
<p class="area-p"><i class="el-icon-bottom"></i>追加下列区域的学情报告查看权限 已选择({{ tagsRegion.length }})</p>
<p class="area-p">
<i class="el-icon-bottom"></i>
追加下列区域的学情报告查看权限 已选择({{ tagsRegion.length }})
</p>
<el-tag
v-for="tag in tagsRegion"
:key="tag.name"
......@@ -259,7 +257,7 @@
</el-col>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogArea = false">取消</el-button>
<el-button type="primary" size="small" @click="dialogArea = false">确认</el-button>
<el-button type="primary" size="small" @click="updateAttachRegion()">确认</el-button>
</span>
</el-dialog>
</div>
......@@ -269,7 +267,7 @@
import BreadCrumb from "../../components/breadcrumb.vue";
import { create } from "domain";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from '../../utils/utils'
import * as commonUtil from "../../utils/utils";
let vm = null;
export default {
components: {
......@@ -332,7 +330,7 @@ export default {
},
dialogFull: false,
scopeRow: {},
activeUser: '',
activeUser: "",
updateNum: 50,
dialogSuccess: false,
failType: 2,
......@@ -347,6 +345,8 @@ export default {
treeData: [],
dialogArea: false,
tagsRegion: [],
doctorId: "",
allSelectedKeys: []
};
},
created() {
......@@ -359,7 +359,7 @@ export default {
},
methods: {
download(type) {
console.log('下载',type);
console.log("下载", type);
},
beforeUpload(file) {
console.log(file);
......@@ -386,7 +386,7 @@ export default {
vm.tableData = res.data.projectRoleInfoModels;
vm.totalRows = res.data.total;
vm.activeUser = res.data.activeUser;
console.log('activeUser',vm.activeUser);
console.log("activeUser", vm.activeUser);
//this.roleList = setRoleList(res.data.roleList);
this.organizationList = res.data.organizationList;
this.departmentsList = res.data.departmentsList;
......@@ -410,11 +410,11 @@ export default {
console.log(res);
vm.queryRoleList();
vm.$message({
message: '设置成功!',
type: 'success'
message: "设置成功!",
type: "success"
});
} else {
this.$message.error('设置失败!');
this.$message.error("设置失败!");
}
});
},
......@@ -446,7 +446,7 @@ export default {
//按钮展示情况
showButton(row, projeceRole) {
let flag = false;
if(vm.activeUser == "L1") {
if (vm.activeUser == "L1") {
//当前内部管理员
if (row.projeceRole == "L2") {
if (projeceRole == "L0") {
......@@ -484,10 +484,10 @@ export default {
},
showAppend(projeceRole) {
let flag = false;
if(vm.activeUser == 'L1' || vm.activeUser == 'L1') {
if(projeceRole == 'L3') {
if (vm.activeUser == "L1" || vm.activeUser == "L1") {
if (projeceRole == "L3") {
flag = true;
}
}
}
return flag;
},
......@@ -523,17 +523,32 @@ export default {
}
}
},
addArea() {
addArea(row) {
vm.dialogArea = true;
vm.getAdministrative();
vm.getAdministrative(row);
},
getAdministrative() {
getAdministrative(row) {
vm.doctorId = row.userId;
let req = {
projectId: vm.formInline.portalProjectId
};
openLoading(vm);
vm.GET("portal/scope/v1/administrative", req).then(res => {
closeLoading(vm);
// if (res.code == "000000") {
// let administrativeAll = res.data.administrativeAll;
// let administrative = res.data.administrative;
// this.treeData = [];
// this.treeData[0] = administrativeAll;
// this.setTreeData(administrative);
// }
});
let req2 = {
projectId: vm.formInline.portalProjectId,
doctorId: row.userId
};
vm.GET("portal/portalProjectOrRole/getAttachRegion", req2).then(res => {
if (res.code == "000000") {
let administrativeAll = res.data.administrativeAll;
let administrative = res.data.administrative;
......@@ -685,6 +700,63 @@ export default {
this.tagsRegion.splice(this.tagsRegion.indexOf(tag), 1);
this.setCheckedKeys(this.tagsRegion);
},
//设定的行政范围内容
getScope(type) {
let scope = "";
console.log("this.allSelectedKeys", this.allSelectedKeys);
if (this.allSelectedKeys.length > 0) {
for (let i = 0; i < this.allSelectedKeys.length; i++) {
scope +=
this.allSelectedKeys[i].key + ":" + this.allSelectedKeys[i].type;
if (i < this.allSelectedKeys.length - 1) {
scope += "|";
}
}
} else {
let noChangeTree = this.getTreeCheck();
console.log("noChangeTree值", noChangeTree);
if (noChangeTree.length > 0) {
for (let i = 0; i < noChangeTree.length; i++) {
scope += noChangeTree[i].key + ":" + noChangeTree[i].type;
if (i < noChangeTree.length - 1) {
scope += "|";
}
}
} else {
//选全国项目
if (this.tagsRegion[0].key == "000") {
scope = "000:1";
console.log(this.tagsRegion, "scope", scope);
}
}
}
//console.log(scope);
return scope;
},
updateAttachRegion() {
let req = {
attachRegionId: 0,
doctorId: vm.doctorId,
projectId: vm.formInline.portalProjectId,
scopeOfAdministrative: vm.getScope(),
};
console.log("req", req);
debugger;
vm.POST("portal/portalProjectOrRole/insertOrUpdateAttachRegion", req).then(
res => {
if (res.code == "000000") {
vm.$message({
message: '设置成功',
type: 'success'
});
} else {
this.$message.error(res.message);
}
}
);
}
}
};
</script>
......@@ -749,10 +821,10 @@ export default {
margin-top: 10px;
}
.fail-num {
color: #DB3F52;
color: #db3f52;
}
.fail-notice {
color: #E3E3E3;
color: #e3e3e3;
font-size: 13px;
}
.fail-link {
......@@ -783,6 +855,10 @@ export default {
background-color: #449284;
border-color: #449284;
}
.is-checked .el-checkbox__inner {
background-color: #449284;
border-color: #449284;
}
}
}
}
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册