first commit

This commit is contained in:
2026-09-09 09:14:28 +08:00
commit 5343198112
5199 changed files with 1052895 additions and 0 deletions
@@ -0,0 +1,865 @@
<!--基层工会信息管理页面 djx 2019-5-7-->
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-date-editor .el-range-separator {
padding: 0px;
}
#infoDialog .el-dialog__body {
padding: 0px 20px;
}
.el-tabs__header {
margin: 0 0 1px;
}
#lxrDialog .el-dialog__body {
padding-top: 0;
}
</style>
<div id="app" v-cloak>
<!--快捷查询-->
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-input style="width: 300px" placeholder="可按基层工会名称或负责人姓名查询" v-model="pageForm.searchKeyword" clearable></el-input>
</div>
<!-- <div class="btn-group tool-button mt5">-->
<!-- <el-date-picker-->
<!-- format="yyyy-MM-dd"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- v-model="searchTime"-->
<!-- type="daterange"-->
<!-- range-separator="至"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期">-->
<!-- </el-date-picker>-->
<!-- </div>-->
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" @click="openAdd" type="warning"><i class="ti-plus"></i> 新建基层工会</el-button>
</div>
</el-row>
<!--表格列表显示-->
<el-row class="el-table-container">
<el-table :data="tableData">
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope"><span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="基层工会名称" prop="unionname"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column align="center" header-align="center" label="基层工会地址" prop="unionaddress"
:show-overflow-tooltip="true"></el-table-column>
<el-table-column align="center" header-align="center" label="基层工会负责人" prop="leader"></el-table-column>
<el-table-column align="center" header-align="center" label="联系电话" prop="telephone"></el-table-column>
<el-table-column align="center" label="操作" width="350px">
<template slot-scope="scope">
<el-button type="info" size="mini" @click="openLxb(scope.row)">联系信息表</el-button>
<el-button type="success" size="mini" @click="openInfo(scope)">查看</el-button>
<el-button type="primary" size="mini" @click="openEdit(scope)">编辑</el-button>
<el-button type="danger" size="mini" @click="deleteDo(scope)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<!--分页-->
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
: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-dialog
title="新增基层工会"
:visible.sync="addDialogVisible" width="40%" custom-class="ViewDialogClass">
<el-form :model="formData" ref="addForm" :rules="formRules" size="small" label-width="86px">
<el-form-item prop="unionname" label="基层工会名称">
<el-input maxlength="100" placeholder="基层工会名称"
v-model="formData.unionname"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<el-form-item prop="unionaddress" label="基层工会地址">
<el-input maxlength="100" placeholder="基层工会地址"
v-model="formData.unionaddress"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<el-form-item prop="unionleader" label="基层工会负责人">
<el-select
style="width: 100%"
v-model="formData.unionleader"
filterable
remote
multiple
reserve-keyword
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading">
<el-option v-for="item in User" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="telephone" label="联系电话">
<el-input maxlength="100" placeholder="联系电话"
v-model="formData.telephone" clearable
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<el-form-item prop="dwcode" label="单位编号">
<el-input maxlength="100" placeholder="单位编号"
v-model="formData.dwcode" clearable
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<!-- <el-form-item prop="uniontime" label="建会时间">-->
<!-- <el-date-picker style="width: 100%" v-model="formData.uniontime" format="yyyy-MM-dd"-->
<!-- value-format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item prop="unit" label="组成单位">
<el-select v-model="formData.unit" multiple filterable style="width: 100%" placeholder="请选择单位">
<el-option
v-for="item in unitSeled"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doAdd">确 定</el-button>
</span>
</el-dialog>
<!--编辑基层工会-->
<el-dialog
title="编辑基层工会"
:visible.sync="editDialogVisible" width="40%" custom-class="ViewDialogClass">
<el-form :model="editformData" ref="editForm" :rules="editformRules" size="small" label-width="86px">
<el-form-item prop="unionname" label="基层工会名称">
<el-input maxlength="100" placeholder="基层工会名称"
v-model="editformData.unionname"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<el-form-item prop="unionaddress" label="基层工会地址">
<el-input maxlength="100" placeholder="基层工会地址"
v-model="editformData.unionaddress"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<el-form-item prop="unionleader" label="基层工会负责人">
<el-select
style="width: 100%"
v-model="editformData.unionleader"
filterable
remote
multiple
reserve-keyword
placeholder="请输入关键词"
:remote-method="remoteMethode"
:loading="loading">
<el-option v-for="item in User" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="telephone" label="联系电话">
<el-input maxlength="100" placeholder="联系电话"
v-model="editformData.telephone" clearable
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<el-form-item prop="dwcode" label="单位编号">
<el-input maxlength="100" placeholder="单位编号"
v-model="editformData.dwcode" clearable
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<!-- <el-form-item prop="uniontime" label="建会时间">-->
<!-- <el-date-picker style="width: 100%" v-model="editformData.uniontime" format="yyyy-MM-dd"-->
<!-- value-format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item prop="unit" label="组成单位">
<el-select v-model="editformData.unit" multiple filterable style="width: 100%" placeholder="请选择单位">
<el-option
v-for="item in editunit"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doEdit">确 定</el-button>
</span>
</el-dialog>
<!--查看-->
<el-dialog title="查看基层工会信息" id="infoDialog"
:visible.sync="infoDialogVisible" custom-class="ViewDialogClass">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane style="margin-top: 14px;" label="基层工会信息" name="first">
<el-row style="text-align: left;padding-right: 17px;">
<el-col :span="6">
<el-label style="font-weight: bold;font-size: small;">&emsp;基层工会名称:</el-label>
</el-col>
<el-col :span="18">
<el-label>{{detailInfo.unionname}}</el-label>
</el-col>
</el-row>
<br/>
<el-row style="text-align: left;padding-right: 17px;">
<el-col :span="6">
<el-label style="font-weight: bold;font-size: small;">&emsp;基层工会地址:</el-label>
</el-col>
<el-col :span="18">
<el-label>{{detailInfo.unionaddress}}</el-label>
</el-col>
</el-row>
<br/>
<!-- <el-row style="text-align: left;padding-right: 17px;">-->
<!-- <el-col :span="6">-->
<!-- <el-label style="font-weight: bold;font-size: small;">&emsp;建会时间:</el-label>-->
<!-- </el-col>-->
<!-- <el-col :span="18">-->
<!-- <el-label>{{detailInfo.uniontime}}</el-label>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <br/>-->
<el-row style="text-align: left;padding-right: 17px;">
<el-col :span="6">
<el-label style="font-weight: bold;font-size: small;">基层工会负责人:</el-label>
</el-col>
<el-col :span="18">
<el-label>{{detailInfo.leader}}</el-label>
</el-col>
</el-row>
<br/>
<el-row style="text-align: left;padding-right: 17px;">
<el-col :span="6">
<el-label style="font-weight: bold;font-size: small;">&emsp;联系电话:</el-label>
</el-col>
<el-col :span="18">
<el-label>{{detailInfo.telephone}}</el-label>
</el-col>
</el-row>
<br/>
<el-row style="text-align: left;padding-right: 17px;">
<el-col :span="6">
<el-label style="font-weight: bold;font-size: small;">&emsp;单位编号:</el-label>
</el-col>
<el-col :span="18">
<el-label>{{detailInfo.dwcode}}</el-label>
</el-col>
</el-row>
<br/>
<!--<el-row style="text-align: left;padding-right: 17px;">
<el-col :span="6"><el-label style="font-weight: bold;font-size: small;">&emsp;单&emsp;&emsp;位:</el-label></el-col>
<el-col :span="18">
<template v-for="item,index in unitInfo">
<el-col :span="6">{{item.name}}</el-col>
<br v-if="(index+1) % 3 == 0"/>
</template>
</el-col>
</el-row><br/>-->
</el-tab-pane>
<el-tab-pane label="人员信息" name="third">
<el-row class="header navbar bg-white shadow" style="min-height: 43px;">
<div class="btn-group tool-button mt5">
<el-input placeholder="可按姓名、电话查询" size="small" v-model="userpageForm.searchKeyword"
clearable></el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="userpageForm.unit" filterable clearable size="small" placeholder="请选择单位">
<el-option
v-for="item in unitInfo"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button size="small" type="primary" icon="el-icon-search" @click="doUserSearch"></el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="usertableData" size="small">
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope"><span>{{scope.$index+(userpageForm.pageNumber - 1) * userpageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="工号"
prop="loginname"></el-table-column>
<el-table-column align="center" header-align="center" label="姓名"
prop="username"></el-table-column>
<el-table-column align="center" header-align="center" label="性别" prop="sex"></el-table-column>
<el-table-column align="center" header-align="center" label="单位" width="200px"
prop="depname"></el-table-column>
<el-table-column align="center" header-align="center" label="电话"
prop="mobile"></el-table-column>
<el-table-column align="center" header-align="center" label="在职状态"
prop="zzzt"></el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="userpageSizeChange"
@current-change="userpageNumberChange"
:current-page="userpageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="userpageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="userpageForm.totalCount">
</el-pagination>
</el-row>
</el-tab-pane>
<el-tab-pane label="单位组成" name="fourth">
<el-table :data="unitInfo" size="small">
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope"><span>{{scope.$index+1}} </span></template>
</el-table-column>
<el-table-column align="center" header-align="center" label="单位名称" prop="name"></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="infoDialogVisible = false">确 定</el-button>
</span>
</el-dialog>
<el-dialog
id="lxrDialog"
:title="union.unionname+'联系信息表'"
:visible.sync="lxbDialogVisible" width="70%" custom-class="ViewDialogClass"
>
<div class="pull-right offscreen-right mt5" style="margin-bottom: 10px;margin-top: 10px">
<el-button size="small" @click="lxbTableData.push({})" type="warning"><i class="ti-plus"></i> 添加联系人
</el-button>
</div>
<el-table :data="lxbTableData" border>
<el-table-column align="center" header-align="center" label="序号" type="index"></el-table-column>
<el-table-column align="center" header-align="center" label="姓名" prop="name">
<template slot-scope="scope">
<el-input placeholder="填写姓名" size="small" v-model="scope.row.name" clearable></el-input>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="性别" width="110px" prop="sex">
<template slot-scope="scope">
<el-select v-model="scope.row.sex" size="small" placeholder="请选择">
<el-option
v-for="item in [{x:'男'},{x:'女'}]"
:key="item.x"
:label="item.x"
:value="item.x">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="职务" prop="zw">
<template slot-scope="scope">
<el-select v-model="scope.row.zw" size="small" placeholder="请选择">
<el-option
v-for="item in zwOptions"
:key="item.x"
:label="item.x"
:value="item.x">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="移动电话" prop="mobile">
<template slot-scope="scope">
<el-input placeholder="填写电话" size="small" v-model="scope.row.mobile" clearable></el-input>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="邮箱" prop="email" width="200px">
<template slot-scope="scope">
<el-input placeholder="填写邮箱" size="small" v-model="scope.row.email" clearable></el-input>
</template>
</el-table-column>
<el-table-column label="操作" align="center" header-align="center" width="100px">
<template slot-scope="scope">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="delLxb(scope)"></el-button>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="lxbDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="saveLxb">保 存</el-button>
</span>
</el-dialog>
</div>
<script>
var vue = new Vue({
el: "#app",
data: function () {
return {
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchKeyword: "",
uniontime: "",
},
searchTime: [],
userpageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchKeyword: "",
unit: "",
id: "",
},
/*表格数据*/
tableData: [],
usertableData: [],
/*新增*/
addDialogVisible: false,
formData: {
unionname: "",
unionaddress: "",
uniontime: "",
unit: [],
unionleader: [],
},
formRules: {
unionname: [
{required: true, message: '基层工会名称', trigger: ['blur', 'change']}
],
unionaddress: [
{required: true, message: '基层工会地址', trigger: ['blur', 'change']}
],
uniontime: [
{required: true, message: '建会时间', trigger: ['blur', 'change']}
],
unit: [
{required: true, message: '单位', trigger: ['blur', 'change']}
],
/*unionleader: [
{required: true, message: '基层工会负责人', trigger: ['blur', 'change']}
],*/
},
User: [],
units: [],
unitSeled: [],
loading: false,
/*编辑*/
editunit: [],
editDialogVisible: false,
editformData: {
id: "",
unionname: "",
unionaddress: "",
uniontime: "",
unit: [],
dwcode:'',
unionleader: [],
telephone: '',
/*oldleader:[],*/
},
editformRules: {
unionname: [
{required: true, message: '基层工会名称', trigger: ['blur', 'change']}
],
unionaddress: [
{required: true, message: '基层工会地址', trigger: ['blur', 'change']}
],
uniontime: [
{required: true, message: '建会时间', trigger: ['blur', 'change']}
],
unit: [
{required: true, message: '单位', trigger: ['blur', 'change']}
],
/*unionleader: [
{required: true, message: '基层工会负责人', trigger: ['blur', 'change']}
],*/
},
/*查看*/
infoDialogVisible: false,
activeName: "first",
detailInfo: [],
unitInfo: [],
union: {},
lxbDialogVisible: false,
lxbTableData: [],
delLxr: [],
zwOptions: [
{x: '书记'},
{x: '院长(处长)'},
{x: '主席'},
{x: '副主席'},
{x: '组织委员'},
{x: '宣传委员'},
{x: '文艺委员'},
{x: '体育委员'},
{x: '青工委员'},
{x: '女工委员'},
{x: '生活委员'},
]
}
},
methods: {
//保存联系表
saveLxb: function () {
var self = this
var flag = true
var errmsg = ''
var isPhone = /^1[3456789]\d{9}$/;//手机号码
var emailReg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/
$(self.lxbTableData).each(function (index) {
if (this.name === undefined || this.name == '') {
flag = false;
errmsg = '第' + (index + 1) + '个联系人的姓名未填写!'
return false
}
if (this.sex === undefined || this.sex == '') {
flag = false;
errmsg = this.name + '的性别未填写!'
return false
}
if (this.zw === undefined || this.zw == '') {
flag = false;
errmsg = this.name + '的职务未填写!'
return false
}
if (this.mobile === undefined || this.mobile == '') {
flag = false;
errmsg = this.name + '的电话未填写!'
return false
}
if (!isPhone.test(this.mobile)) {
flag = false;
errmsg = '请为' + this.name + '填写正确的电话号码!'
return false
}
if (this.email === undefined || this.email == '') {
flag = false;
errmsg = this.name + '的邮箱未填写!'
return false
}
if (!emailReg.test(this.email)) {
flag = false;
errmsg = '请为' + this.name + '填写正确的邮箱地址!'
return false
}
})
// if (self.lxbTableData.length==0){
// errmsg='请至少添加一位联系人!';
// }
// if (!flag||self.lxbTableData.length==0) {
if (!flag) {
self.$message({
message: errmsg,
type: 'warning'
});
} else {
$.post(base + "/platform/hy/unioninfomgr/saveLxb", {
unionid: self.union.id,
dellxr: JSON.stringify(self.delLxr),
lxr: JSON.stringify(self.lxbTableData),
}, function (data) {
if (data.code == 0) {
self.$message({
message: '保存成功!',
type: 'success'
});
self.lxbDialogVisible = false;
} else {
self.$message({
message: '保存失败!',
type: 'error'
});
}
}, "json");
}
},
//删除联系表单条
delLxb: function (scope) {
var self = this
if (scope.row.id != undefined) {
self.delLxr.push(scope.row.id)
}
self.lxbTableData.splice(scope.$index, 1)
},
//打开联系表
openLxb: function (union) {
var self = this
self.union = union
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/hy/unioninfomgr/getLxbData", {unionid: union.id}, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.lxbTableData = data.data;
self.lxbDialogVisible = true
}
}, "json");
},
//页面初始化,加载表格数据
pageData: function () {
var self = this;
if (self.searchTime) {
self.pageForm.uniontime = self.searchTime.toString();
} else {
self.pageForm.uniontime = "";
}
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/hy/unioninfomgr/init", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.unioninfomgr.list;
self.units = data.data.ejdw;
self.unitSeled = data.data.unit;
self.pageForm.totalCount = data.data.unioninfomgr.totalCount;
}
}, "json");
},
/*分页事件*/
pageSizeChange: function (val) {
this.pageForm.pageSize = val;
this.pageData();
},
pageNumberChange: function (val) {
this.pageForm.pageNumber = val;
this.pageData();
},
userpageSizeChange: function (val) {
this.userpageForm.pageSize = val;
this.userPageData();
},
userpageNumberChange: function (val) {
this.userpageForm.pageNumber = val;
this.userPageData();
},
doSearch: function () {
var self = this;
self.pageForm.pageNumber = 1;
self.pageData();
},
doUserSearch: function () {
var self = this;
self.userPageData();
},
/*新增基层工会*/
openAdd: function () {
var self = this;
self.formData = {
unionname: "",
unionaddress: "",
uniontime: "",
dwcode:'',
unit: [],
unionleader: [],
telephone: '',
};
self.User = [];
self.addDialogVisible = true;
},
doAdd: function () {
var self = this;
self.$refs["addForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/hy/unioninfomgr/addDo", self.formData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.addDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
/*远程搜索用户*/
remoteMethod: function (keyWord) {
var self = this;
if (keyWord != "" && keyWord != null) {
self.loading = true;
setTimeout(function () {
$.post(base + "/platform/hy/unioninfomgr/remoteMethod", {
keyWord: keyWord,
units: self.formData.unit.toString()
}, function (data) {
if (data.code == 0) {
self.User = data.data;
self.loading = false;
}
}, "json");
}, 200)
} else {
self.User = [];
}
},
/*远程搜索用户*/
remoteMethode: function (keyWord) {
var self = this;
if (keyWord != "" && keyWord != null) {
self.loading = true;
setTimeout(function () {
$.post(base + "/platform/hy/unioninfomgr/remoteMethod", {
keyWord: keyWord,
units: self.editformData.unit.toString()
}, function (data) {
if (data.code == 0) {
self.User = data.data;
self.loading = false;
}
}, "json");
}, 200)
} else {
self.User = [];
}
},
/*查看*/
openInfo: function (scope) {
var self = this;
//this.pageForm.pageNumber = "1";
this.userpageForm.pageNumber = "1";
self.userpageForm.searchKeyword = "";
self.userpageForm.unit = "";
self.userpageForm.id = scope.row.id;
$.post(base + "/platform/hy/unioninfomgr/findInfo", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.detailInfo = data.data.union;
self.unitInfo = data.data.unit;
}
}, "json");
self.userPageData();
self.infoDialogVisible = true;
},
userPageData: function () {
var self = this;
$.post(base + "/platform/hy/unioninfomgr/findUserInfo", self.userpageForm, function (data) {
if (data.code == 0) {
self.usertableData = data.data.user.list;
self.userpageForm.totalCount = data.data.user.totalCount;
}
}, "json");
},
handleClick: function () {
},
/*编辑*/
openEdit: function (scope) {
var self = this;
self.editformData.id = scope.row.id;
self.editformData.unionname = scope.row.unionname;
self.editformData.unionaddress = scope.row.unionaddress;
self.editformData.uniontime = scope.row.uniontime;
self.editformData.dwcode = scope.row.dwcode;
self.editformData.telephone = scope.row.telephone;
$.post(base + "/platform/hy/unioninfomgr/findById", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.User = data.data.leader;
setTimeout(function () {
self.editformData.unit = data.data.ids;
self.editformData.unionleader = data.data.leaderids;
/* self.editformData.oldleader = data.data.leader[0].id;*/
self.editunit = data.data.unit;
}, 10);
}
}, "json");
self.editDialogVisible = true;
},
doEdit: function () {
var self = this;
self.$refs["editForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/hy/unioninfomgr/editDo", self.editformData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.editDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
/*删除*/
deleteDo: function (scope) {
var self = this;
self.$confirm('此操作将删除该条数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (obj) {
if ("confirm" == obj) {
$.post(base + "/platform/hy/unioninfomgr/deleteDo", {id: scope.row.id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
}
},
created: function () {
this.pageData();
}
})
</script>
<!--#
}
#-->
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,812 @@
<!--
二级单位管理
何鹏飞
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>
<!--#
}
#-->