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

角色管理页面逻辑

上级 22e419da
......@@ -141,5 +141,17 @@ const vueFilter = {
return '已拒绝'
}
},
projeceRoleType: (value) => {
if(value == "L1") {
return '内部管理员'
}else if(value == "L2") {
return '项目负责人'
}else if(value == "L3") {
return '次级负责人'
} else if(value == "L4") {
return '普通用户'
}
},
}
export default vueFilter
\ No newline at end of file
......@@ -6,7 +6,7 @@
<div style="margin: 10px 0 0 10px">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="项目名称:">
<el-input v-model="formInline.projectName" size="mini" placeholder="审批人"></el-input>
<el-input v-model="formInline.projectName" size="mini" placeholder="请输入项目名称"></el-input>
</el-form-item>
<el-form-item label="项目时间:">
<el-date-picker
......@@ -215,6 +215,7 @@ export default {
setParam(data) {
let param = {};
if (
data.duringTime !== null &&
data.duringTime !== "" &&
data.duringTime[0] !== null &&
data.duringTime[1] !== null
......
......@@ -5,12 +5,12 @@
<div class="header-title">查询条件</div>
<el-row :gutter="30" class="row" type="flex" style="margin-top: 10px;">
<el-form ref="serchForm" :model="formInline" label-width="75px" class="form-inline">
<el-col :span="5">
<el-col :span="6">
<el-form-item label="姓名:">
<el-input size="mini" v-model="formInline.name" placeholder="审批人"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-col :span="6">
<el-form-item label="所属机构:">
<el-select size="mini" v-model="formInline.organization" placeholder="请选择所属机构">
<el-option label="机构1" value="organization1"></el-option>
......@@ -18,7 +18,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-col :span="6">
<el-form-item label="所属科室:">
<el-select size="mini" v-model="formInline.department" placeholder="请选择所属科室">
<el-option label="科室1" value="department1"></el-option>
......@@ -26,9 +26,9 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" style="padding:0;text-align:right;padding-right:15px;">
<el-button type="primary" size="small" @click="search">查询</el-button>
<el-button type="default" size="small" @click="reseat" style="margin-left:0;">重置</el-button>
<el-col :span="6" style="padding:0;text-align:right;padding-right:10px;">
<el-button type="primary" size="small" @click="queryRoleList()">查询</el-button>
<el-button type="default" size="small" @click="reseat()" style="margin-left:0;">重置</el-button>
</el-col>
</el-form>
</el-row>
......@@ -37,15 +37,35 @@
:data="tableData"
:header-cell-style="{background:'#FAFAFA',color:'#000'}"
>
<el-table-column prop="id" label="用户ID" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" align="center"></el-table-column>
<el-table-column prop="role" label="角色" align="center"></el-table-column>
<el-table-column prop="organization" label="所属机构" align="center"></el-table-column>
<el-table-column prop="department" label="科室" align="center"></el-table-column>
<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="projeceRole" label="角色" align="center">
<template slot-scope="scope">
<span>{{ scope.row.projeceRole | projeceRoleType }}</span>
</template>
</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 fixed="right" label="操作" width="300" align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="toPage(scope)">升级项目负责人</el-button>
<el-button type="primary" size="small" @click="toPage(scope)">降为普通用户</el-button>
<el-button
type="primary"
size="small"
v-show="showButton(scope.row,'L2')"
@click="openDialog(scope.row,'L2')"
>升级项目负责人</el-button>
<el-button
type="primary"
size="small"
v-show="showButton(scope.row,'L3')"
@click="openDialog(scope.row,'L3')"
>升级次级负责人</el-button>
<el-button
type="primary"
size="small"
v-show="showButton(scope.row,'L4')"
@click="openDialog(scope.row,'L4')"
>降为普通用户</el-button>
</template>
</el-table-column>
</el-table>
......@@ -54,30 +74,52 @@
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:current-page="formInline.pageNo"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
:page-size="formInline.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="400"
:total="totalRows"
></el-pagination>
</div>
<el-dialog title :visible.sync="dialog.show" width="30%" center>
<p class="dialog-p">
确认将{{ dialog.role }}
<span class="user-name">"{{ dialog.name }}"</span>
{{ dialog.option }}吗?"
</p>
<span slot="footer" class="dialog-footer">
<el-button type="default" size="small" @click="dialog.show = false">取消</el-button>
<el-button type="primary" size="small" @click="changeRole()">确定</el-button>
</span>
</el-dialog>
<el-dialog title :visible.sync="dialogFull" width="30%" center>
<p class="dialog-p">
无法操作,项目负责人已满
<span class="user-name">5人</span>
</p>
<span slot="footer" class="dialog-footer">
<el-button type="default" size="small" @click="dialogFull = false">取消</el-button>
<el-button type="primary" size="small" @click="dialogFull = false">确定</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
import BreadCrumb from "../../components/breadcrumb.vue";
import { create } from "domain";
let vm = null;
export default {
components: {
BreadCrumb
},
data() {
const item = {
id: "298490",
name: "李雪",
role: "项目负责人",
organization: "浙江省人民医院",
department: "外科"
userId: "298490",
userName: "李雪",
projeceRole: "L4",
organizationName: "浙江省人民医院",
departmentsName: "外科"
};
return {
curmbFirst: "系统管理",
......@@ -86,31 +128,106 @@ export default {
tableData: Array(10).fill(item),
loading: false,
timingTime: "",
totalRows: 0,
currentPage: 1,
formInline: {
name: "",
role: "",
organization: "",
department: ""
portalProjectId: "",
pageNo: 1,
pageSize: 10,
departmentsName: "",
organizationName: "",
projeceRole: "",
userName: ""
},
dialog: {
show: false,
role: "项目负责人",
name: "李雷",
option: "升级为项目负责人",
full: false
},
dialogFull: false
};
},
created() {},
created() {
vm = this;
this.queryRoleList();
},
methods: {
toPage() {
this.$router.push("item-role");
//查询用户列表
queryRoleList() {
this.formInline.portalProjectId = vm.getUrlSearch(
window.location.href,
"portalProjectId"
);
if (this.formInline.portalProjectId == null) {
this.formInline.portalProjectId = "";
}
let req = {};
req = this.formInline;
console.log(req);
vm.GET("portalProjectOrRole/queryRoleList", req).then(res => {
if (res.code == "000000") {
vm.tableData = res.data;
vm.totalRows = res.data.total;
this.loading = false;
}
});
},
changeRole(row) {},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
},
search() {
search() {},
reseat() {},
//按钮展示情况
showButton(row, projeceRole) {
let flag = false;
//console.log("当前等级 " + row.projeceRole + " 改变成等级 " + projeceRole);
if (row.projeceRole == "L2") {
if (projeceRole == "L4") {
flag = true;
}
} else if (row.projeceRole == "L3") {
if (projeceRole == "L2" || projeceRole == "L4") {
flag = true;
}
} else if (row.projeceRole == "L4") {
if (projeceRole == "L2" || projeceRole == "L3") {
flag = true;
}
}
return flag;
},
reseat() {
//打开弹出框
openDialog(row, projeceRole) {
this.dialog.show = true;
this.dialog.name = row.userName;
if (row.projeceRole == "L2") {
this.dialog.role = "项目负责人";
if (projeceRole == "L4") {
this.dialog.option = "降级为普通用户";
}
} else if (row.projeceRole == "L3") {
this.dialog.role = "次级负责人";
if (projeceRole == "L2") {
this.dialog.option = "升级为项目负责人";
this.dialogFull = true;
} else if (projeceRole == "L4") {
this.dialog.option = "降级为普通用户";
}
} else if (row.projeceRole == "L4") {
this.dialog.role = "普通用户";
if (projeceRole == "L2") {
this.dialog.option = "升级为项目负责人";
this.dialogFull = true;
} else if (projeceRole == "L3") {
this.dialog.option = "升级为次级负责人";
}
}
}
}
};
......@@ -129,21 +246,11 @@ export default {
color: #449284;
border-bottom: 1px solid #efefef;
}
.to-right {
float: right;
}
.table-option span {
color: #409eff;
}
.add-button {
float: right;
}
.el-table .cell {
color: #929292;
}
.el-table th > .cell {
font-weight: bold;
color: #000;
.dialog-p {
text-align: center;
span {
color: #449284;
}
}
}
}
......
......@@ -7,7 +7,7 @@
<el-form ref="formInline" :model="formInline" label-width="75px" style="width:100%;">
<el-col :span="6">
<el-form-item label="项目名称:">
<el-input v-model="formInline.projectName" size="mini" placeholder="审批人"></el-input>
<el-input v-model="formInline.projectName" size="mini" placeholder="请输入项目名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
......@@ -46,7 +46,7 @@
</el-table-column>
<el-table-column fixed="right" label="操作" width="200" align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="toPage(scope)">查看项目人员</el-button>
<el-button type="primary" size="small" @click="toPage(scope.row)">查看项目人员</el-button>
</template>
</el-table-column>
</el-table>
......@@ -74,20 +74,10 @@ export default {
BreadCrumb
},
data() {
const item = {
id: "298490",
projectName: "浙江省防控中心指空中...",
createName: "李雷",
projectBrief: "显示项目简介简介",
address: "浙江省",
startTime: "2018-12-15 15:39:23",
endTime: "2018-12-15 15:39:23",
state: "草稿"
};
return {
curmbFirst: "系统管理",
curmbSecond: "角色管理",
tableData: Array(10).fill(item),
tableData: [],
loading: false,
timingTime: "",
currentPage: 1,
......@@ -144,8 +134,8 @@ export default {
});
},
reseat() {},
toPage() {
this.$router.push("item-role");
toPage(row) {
this.$router.push("item-role?portalProjectId=" + row.id);
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册