Files
UNION_HUTB/target/classes/views/platform/hy/zzjg/unitindex.html
T
2026-09-09 09:14:28 +08:00

813 lines
34 KiB
HTML

<!--
二级单位管理
何鹏飞
9:22 2019/5/7
-->
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.ViewDialogClass .el-form-item {
margin-bottom: 15px;
white-space: nowrap;
width: 95%;
text-overflow: ellipsis;
overflow: visible;
}
</style>
<div id="app">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-input placeholder="输入编号,单位名称查询" clearable v-model="pageForm.searchKeyword">
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select slot="prepend" clearable placeholder="基层工会" v-model="pageForm.searchName" filterable>
<el-option :label="item.unionname" :value="item.id" v-for="item in ghList" ></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-if="con" slot="prepend" placeholder="所属高校" v-model="pageForm.gxid" style="width: 140px;">
<el-option :label="item.gxname" :value="item.gxid" v-for="item in gxList"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button slot="append" icon="el-icon-search" type="primary" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<!--<el-button size="medium" type="success"><i class="ti-plus"></i> 更新单位</el-button>-->
<el-button size="medium" type="warning" @click="ad"><i class="ti-plus"></i> 新建单位</el-button>
</div>
</el-row>
<!--表格-->
<el-row class="el-table-container">
<el-table
:data="tableData"
header-align="center"
style="width: 100%;">
<el-table-column
prop="id"
label="单位编号">
</el-table-column>
<el-table-column
prop="name"
label="单位名称">
</el-table-column>
<el-table-column label="基层工会">
<template scope="scope"><span>{{show[scope.row.id]}}</span></template>
</el-table-column>
<el-table-column
prop="a"
label="单位负责人">
</el-table-column>
<el-table-column
prop="telephone"
label="联系电话">
</el-table-column>
<el-table-column label="操作" width="450px" header-align="center" align="center">
<template slot-scope="scope" >
<el-button size="mini" type="success" @click="doAdmin(scope.row.id)">设置负责人</el-button>
<el-button size="mini" type="warning" @click="doOperator(scope.row.id)">设置操作员</el-button>
<el-button size="mini" type="primary" @click="upd(scope)">编辑</el-button>
<el-button size="mini" type="danger" @click="del(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!--分页-->
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNum"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
</el-row>
<!--新增-->
<el-dialog title="新增单位" width="35%" custom-class="ViewDialogClass" :visible.sync="roleDialogVisible">
<el-form label-width="100px" size="medium" :model="ruleForm" :rules="rules" ref="addForm">
<el-form-item label="单位编号" prop="id">
<el-input maxlength="30" placeholder="单位编号"
auto-complete="off" tabindex="1" v-model="ruleForm.id" type="text" ></el-input>
</el-form-item>
<el-form-item label="单位名称" prop="name">
<el-input maxlength="30" placeholder="单位名称"
auto-complete="off" tabindex="1" v-model="ruleForm.name" type="text" ></el-input>
</el-form-item>
<el-form-item label="单位别名" prop="aliasName">
<el-input maxlength="30" placeholder="单位别名"
auto-complete="off" tabindex="1" v-model="ruleForm.aliasName" type="text" ></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="telephone">
<el-input maxlength="30" placeholder="联系电话"
auto-complete="off" tabindex="1" v-model="ruleForm.telephone" type="text" ></el-input>
</el-form-item>
<el-form-item label="基层工会" prop="id">
<el-select style="width: 100%" :show-all-levels="false" placeholder="基层工会" v-model="ruleForm.id" >
<el-option :label="item.unionname" :value="item.id" v-for="item in ghList"></el-option>
</el-select>
</el-form-item>
<el-form-item label="单位负责人" prop="fzrId">
<el-select
style="width: 100%"
size="small"
v-model="ruleForm.fzrId"
multiple
filterable
remote
reserve-keyword
placeholder="设置单位负责人"
:remote-method="remoteMethod"
:loading="loading">
<el-option
v-for="item in options"
:key="item.id"
:label="item.c"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="单位操作员" prop="czyId">
<el-select
style="width: 100%;"
size="small"
v-model="ruleForm.czyId"
multiple
filterable
remote
reserve-keyword
placeholder="设置单位操作员"
:remote-method="operatorRemoteMethod"
:loading="operatorloading">
<el-option
v-for="item in Lists"
:key="item.id"
:label="item.c"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="roleDialogVisible=false">取 消</el-button>
<el-button type="primary" @click="add">确 定</el-button>
</div>
</el-dialog>
<!--修改-->
<el-dialog title="修改单位" width="35%" custom-class="ViewDialogClass" :visible.sync="updDialogVisible">
<el-form label-width="100px" size="medium" :model="dataForm" >
<el-form-item label="单位编号" prop="id">
<el-input maxlength="30" placeholder="单位编号"
auto-complete="off" tabindex="1" v-model="dataForm.newId" type="text" ></el-input>
</el-form-item>
<el-form-item label="单位名称" >
<el-input maxlength="30" placeholder="单位名称"
auto-complete="off" tabindex="1" v-model="a" type="text" ></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="telephone">
<el-input maxlength="30" placeholder="联系电话"
auto-complete="off" tabindex="1" v-model="dataForm.telephone" type="text" ></el-input>
</el-form-item>
<el-form-item label="基层工会" prop="id">
<el-select style="width: 100%" :show-all-levels="false" placeholder="基层工会" v-model="dataForm.id" >
<el-option :label="item.unionname" :value="item.id" v-for="item in ghList"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="updDialogVisible=false">取 消</el-button>
<el-button type="primary" @click="update">确 定</el-button>
</div>
</el-dialog>
<!--设置负责人-->
<el-dialog append-to-body custom-class="ViewDialogClass"
title="设置负责人"
:visible.sync="editAdminDialogVisible"
width="50%">
<el-select
size="small"
style="width: 40%"
v-model="value"
multiple
filterable
remote
reserve-keyword
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading">
<el-option
v-for="item in options"
:key="item.id"
:label="item.c"
:value="item.id">
</el-option>
</el-select>
<el-button size="small" @click="addAdmin" type="warning">将用户加入角色</el-button>
<div class="pull-right offscreen-right">
<el-button size="small" @click="delAdmin" type="danger" >从角色中移除</el-button>
</div>
<template>
</template>
<el-table
:data="AdminTableData"
size="small"
header-align="center"
style="width: 100%"
@selection-change="userAdminSelectionChange">
<el-table-column type="selection" width="35"></el-table-column>
<!--<el-table-column type="expand">
<template slot-scope="scope">
<el-form label-position="left" inline class="el-table-expand" size="mini">
<el-form label-position="left" inline class="el-table-expand" size="mini">
<el-form-item label="联系电话">
<span>{{scope.row.mobile}}</span>
</el-form-item>
<el-form-item label="Email">
<span>{{scope.row.email}}</span>
</el-form-item>
</el-form>
</el-form>
</template>
</el-table-column>-->
<el-table-column label="职工号" prop="loginname" align="center"></el-table-column>
<el-table-column label="姓名" prop="username" align="center"></el-table-column>
<el-table-column label="性别" prop="sex" align="center"></el-table-column>
<el-table-column label="角色" prop="rolename" align="center"></el-table-column>
<el-table-column label="单位" prop="unitname" align="center"></el-table-column>
</el-table>
<el-pagination
@size-change="AdminPageSizeChange"
@current-change="AdminPageNumberChange"
:current-page="AdminForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="AdminForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="AdminForm.totalCount">
</el-pagination>
<span slot="footer" class="dialog-footer">
<el-button @click="editAdminDialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
<!--设置操作人-->
<el-dialog append-to-body custom-class="ViewDialogClass"
title="设置操作员"
:visible.sync="editOperatorDialogVisible"
width="50%">
<el-select
size="small"
style="width: 40%"
v-model="key"
multiple
filterable
remote
reserve-keyword
placeholder="请输入关键词"
:remote-method="operatorRemoteMethod"
:loading="operatorloading">
<el-option
v-for="item in Lists"
:key="item.id"
:label="item.c"
:value="item.id">
</el-option>
</el-select>
<el-button size="small" @click="addOperator" type="warning">将用户加入角色</el-button>
<div class="pull-right offscreen-right">
<el-button size="small" @click="delOperator" type="danger" >从角色中移除</el-button>
</div>
<template>
</template>
<el-table
:data="OperatorTableData"
size="small"
header-align="center"
style="width: 100%"
@selection-change="userOperatorSelectionChange"
>
<el-table-column type="selection" width="35"></el-table-column>
<el-table-column label="职工号" prop="loginname" align="center"></el-table-column>
<el-table-column label="姓名" prop="username" align="center"></el-table-column>
<el-table-column label="性别" prop="sex" align="center"></el-table-column>
<el-table-column label="角色" prop="rolename" align="center"></el-table-column>
<el-table-column label="单位" prop="unitname" align="center"></el-table-column>
</el-table>
<el-pagination
@size-change="OperatorPageSizeChange"
@current-change="OperatorPageNumberChange"
:current-page="OperatorForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="OperatorForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="OperatorForm.totalCount">
</el-pagination>
<span slot="footer" class="dialog-footer">
<el-button @click="editOperatorDialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
</div>
<script>
var vm=new Vue({
el:'#app',
data:function () {
var validateId=function (rule, value, callback) {
if (!value){
return callback(new Error('单位编号不能为空'));
}else{
var self=this;
$.post(base+"/platform/hy/unit/see",{id:value},function (data) {
if(data.data!=null){
return callback(new Error('该单位编号已存在'));
}else{
return callback();
}
})
}
}
return{
pageForm:{
searchKeyword: "",//模糊查询
pageNum: 1,
pageSize: 10,
totalCount: 0,
searchName:"",//模糊查询条件
gxid:""
},
roleDialogVisible:false,//新建对话框
editAdminDialogVisible:false,//负责人
editOperatorDialogVisible:false,//操作人
updDialogVisible:false,
tableData:[],//单位
loading:false,
operatorloading:false,
AdminTableData:[],//负责人
OperatorTableData:[],//操作人
options:[],//负责人远程搜索
Lists:[],//操作人远程搜索
value:[],//要添加的人员数组
key:[],
a:"",
AdminDelSelect:[],//要删除的人员数组
OperatorDelSelect:[],//要删除的操作人数组
AdminForm:{
pageNumber:1,
pageSize:10,
totalCount:0,
unitId:"",
RoleId:"75beeb5c181545299cbdc9565add83fa", //单位负责人的roleid
gxid:"",
},
OperatorForm:{
pageNumber:1,
pageSize:10,
totalCount:0,
unitId:"",
RoleId:"98a75d9bcd0a4aafaa76817619501d5e", //单位操作员的roleid
gxid:"",
},
ghList:[],
show:[],
ruleForm:{},//添加表单
dataForm:{},
rules:{
id:[{ validator: validateId, trigger: 'blur'}],
name:[{required: true, message: '请输入单位名称', trigger: 'blur'}],
aliasName:[{required: true, message: '请输入单位别名', trigger: 'blur'}],
id:[{required: true, message: '请选择基层工会', trigger: 'blur'}],
},
gxList:[],
con:false,
}
},
methods:{
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNum = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData: function () {//加载分页数据
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/hy/unit/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.list;
self.pageForm.totalCount = data.data.totalCount;
self.doUnioninfomgr();//更新基层工会列表
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
remoteMethod:function (keywords) {
var self=this;
var unitid=self.AdminForm.unitId;
var roleId=self.AdminForm.RoleId;
if(keywords!=''){
self.loading=true;
$.post(base+"/platform/hy/unit/findUser",{keywords:keywords,unitid:unitid},function (data) {
if (data.code==0){
self.options=data.data;
}else{
self.options=[];
self.$message.error(data.msg);
}
self.loading=false;
})
}else{
self.options=[];
}
},
doAdmin:function(id){
this.editAdminDialogVisible=true;
this.AdminForm.unitId=id;
this.options=[];
this.doAdminload();
},
//单位负责人切换页容量
AdminPageSizeChange:function (val) {
this.AdminForm.pageSize=val;
this.doAdminload();
},
////单位负责人页码切换
AdminPageNumberChange:function (val) {
this.AdminForm.pageNumber=val;
this.doAdminload();
},
doAdminload:function () {
var self=this;
sublime.showLoadingbar();//显示loading
$.post(base+"/platform/hy/unit/fzr",self.AdminForm,function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.AdminTableData = data.data.list;
self.AdminForm.totalCount = data.data.totalCount;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
},
addAdmin:function () {//添加负责人
var self=this;
var user=JSON.stringify(self.value)//转换json对象
$.post(base+"/platform/hy/unit/addAdmin",{users:user,unitid:self.AdminForm.unitId,roleId:self.AdminForm.RoleId},function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doAdminload();
self.value=[];
self.options=[];
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
},'json')
},
userAdminSelectionChange:function(val){//获取选中的对象
this.AdminDelSelect=val;
},
delAdmin:function () {//删除负责人
var self=this;
var del=[];
if (self.AdminDelSelect.length==0){
self.$message({
message:"请先添加要删除的人员"
})
}else{
self.AdminDelSelect.forEach(function (value,index) {
del.push(value.id);
})
var user=JSON.stringify(del)//转换json
$.post(base+"/platform/hy/unit/delAdmin",{users:user,unitid:self.AdminForm.unitId,roleId:self.AdminForm.RoleId},function (data) {
if(data.code==0){
self.$message({
message:data.msg,
type:'success'
});
self.doAdminload();
self.pageData();
self.AdminDelSelect=[];
}else{
self.$message({
message:data.msg,
type:'error'
})
}
},'json')
}
},
operatorRemoteMethod:function (keywords) {//操作员远程搜索
var self=this;
var unitid=self.OperatorForm.unitId;
var roleId=self.OperatorForm.RoleId;
if(keywords!=''){
self.operatorloading=true;
$.post(base+"/platform/hy/unit/findUser",{keywords:keywords,unitid:unitid},function (data) {
if (data.code==0){
self.Lists=data.data;
}else{
self.Lists=[];
self.$message.error(data.msg);
}
self.operatorloading=false;
})
}else{
self.Lists=[];
}
},
addOperator:function () {//添加操作员
var self=this;
var user=JSON.stringify(self.key)//转换json对象
$.post(base+"/platform/hy/unit/addAdmin",{users:user,unitid:self.OperatorForm.unitId,roleId:self.OperatorForm.RoleId},function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doOperatorload();
self.key=[];
self.Lists=[];
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
},'json')
},
delOperator:function () {//删除操作员
var self=this;
var del=[];
if (self.OperatorDelSelect.length==0){
self.$message({
message:"请先添加要删除的人员"
})
}else{
self.OperatorDelSelect.forEach(function (value,index) {
del.push(value.id);
})
var user=JSON.stringify(del)//转换json
$.post(base+"/platform/hy/unit/delAdmin",{users:user,unitid:self.OperatorForm.unitId,roleId:self.OperatorForm.RoleId},function (data) {
if(data.code==0){
self.$message({
message:data.msg,
type:'success'
});
self.doOperatorload()
self.OperatorFormDelSelect=[];
}else{
self.$message({
message:data.msg,
type:'error'
})
}
},'json')
}
},
userOperatorSelectionChange:function(val){//获取选中的对象
this.OperatorDelSelect=val;
},
//单位操作人切换页容量
OperatorPageSizeChange:function (val) {
this.OperatorForm.pageSize=val;
},
////单位操作人页码切换
OperatorPageNumberChange:function (val) {
this.OperatorForm.pageNumber=val;
},
doOperatorload:function () {//加载操作员
var self=this;
sublime.showLoadingbar();//显示loading
$.post(base+"/platform/hy/unit/fzr",self.OperatorForm,function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.OperatorTableData = data.data.list;
self.OperatorForm.totalCount = data.data.totalCount;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
},
doOperator:function(id){//获取单位操作员
this.editOperatorDialogVisible=true;
this.Lists=[];
this.OperatorForm.unitId=id;
this.doOperatorload();
},
del:function (id) {//删除
var self=this
self.$confirm('此操作将删除该单位' , '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/hy/unit/del", {unitid: id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
})
self.pageForm.searchKeyword = "";
self.pageForm.searchName = "";
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
})
}
})
}
}
})
},
doUnioninfomgr:function () {//新增
var self=this
$.post(base+"/platform/hy/unit/doUnioninfomgr",{gxid:self.pageForm.gxid},function (data) {
self.ghList=data.data;
for (var i = 0; i < self.ghList.length; i++) {
self.show[self.ghList[i].id]=self.ghList[i].unionname;
}
})
},
add:function () {
var self = this;
if (self.ruleForm.fzrId==""){
self.$message({
message: "负责人不能为空",
})
return
}
if (self.ruleForm.czyId==""){
self.$message({
message: "操作员不能为空",
})
return
}
for (var i = 0; i <self.ruleForm.fzrId.length ; i++) {
for (var j = 0; j <self.ruleForm.czyId.length ; j++) {
if (self.ruleForm.fzrId[i]==self.ruleForm.czyId[j]){
self.$message({
message: "负责人与操作员不能为同一人",
})
return
}
}
}
var fzrId=JSON.stringify(self.ruleForm.fzrId)//转换json对象
var czyId=JSON.stringify(self.ruleForm.czyId)
self.ruleForm.gxid=self.pageForm.gxid;
self.$refs["addForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/hy/unit/add?fzrId="+fzrId+"&czyId="+czyId, self.ruleForm, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.ruleForm={fzrId:[],czyId:[]};
self.options=[];
self.Lists=[]
self.roleDialogVisible = false;
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
upd:function (scope) {
var self=this;
self.dataForm={
oldId:scope.row.id,
newId:scope.row.id,
telephone:scope.row.telephone,
id:scope.row.id,
}
self.a=scope.row.name;
self.updDialogVisible=true;
},
update:function () {
var self=this;
self.dataForm.name=self.a;
$.post(base + "/platform/hy/unit/update", self.dataForm, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.updDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
ad:function () {
this.roleDialogVisible=true;
this.ruleForm={fzrId:[],czyId:[]}
this.options=[];
this.Lists=[];
if(this.$refs["addForm"]!== undefined){
this.$refs["addForm"].resetFields();
}
},
see:function (id) {
var self=this;
$.post(base+"/platform/hy/unit/see",{id:id},function (data) {
if(data.data==null){
self.$message({
message: "该编号可以使用",
type: 'success'
});
}else{
self.$message({
message: "该编号已经存在",
type: 'error'
});
}
})
},
isAdmin:function () {
var self=this
$.post(base+"/platform/hy/unit/isAdmin",function (data) {
self.con=data.data;
if (self.con){
self.pageForm.gxid="A1";//默认选择中南财经政法大学
self.pageData();
}else{
self.pageData();
}
})
},
findGx:function () {
var self=this;
$.post(base+"/platform/hy/unit/findGx",function (data) {
if (data.code==0){
self.gxList=data.data
} else{
self.$message({
message: data.msg,
type: 'error'
});
}
})
},
doSearch:function () {
this.pageForm.pageNum=1;
this.pageData();
}
},created:function () {
//this.pageData();
this.isAdmin()
this.findGx()
}
})
</script>
<!--#
}
#-->