Files
UNION_HUTB/target/classes/views/platform/sys/gdh/jfscwyh.html
T
2026-09-09 09:14:28 +08:00

365 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--#
layout("/layouts/platform.html"){
#-->
<style>
input[type="file"] {
display: none
}
</style>
<div id="app" v-cloak>
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 120px;">
<el-option label="姓名" value="username"></el-option>
<el-option label="工号" value="loginname"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.gdhid" style="width: 200px" clearable
placeholder="请选择届次">
<el-option
v-for="item in gdhOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.roleid" style="width: 200px" clearable
placeholder="请选择身份">
<el-option
v-for="item in roles"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</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 icon="el-icon-plus" @click="openAdd">添加成员</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tabLoading">
<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 label="工号" prop="loginname" header-align="center"
align="center"></el-table-column>
<el-table-column label="姓名" prop="username" header-align="center"
align="center"></el-table-column>
<el-table-column label="性别" prop="sex" header-align="center" sortable
align="center"></el-table-column>
<el-table-column label="电话" prop="mobile" header-align="center"
align="center"></el-table-column>
<el-table-column label="单位" prop="unitname" header-align="center" sortable
align="center"></el-table-column>
<el-table-column label="工代会" prop="gdhname" header-align="center" sortable
align="center"></el-table-column>
<el-table-column label="身份" prop="rolecode" header-align="center" sortable
align="center">
<template slot-scope="scope">
{{getRoleName(scope.row.roleid)}}
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="200px">
<template slot-scope="scope">
<el-dropdown placement="bottom" style="margin-left: 10px;">
<el-button type="primary" size="mini">
设置身份<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item in roles.filter(v => {
return v.id != scope.row.roleid
})"
@click.native="changeRole({userid:scope.row.userid,roleid:item.id,gdhid:scope.row.gdhid})">
{{item.name}}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-button size="mini" type="danger" @click="doDelete(scope.row)">删除</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"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog
title="添加成员"
:visible.sync="addDialogVisible" :close-on-click-modal="false" width="40%">
<el-form :model="formData" ref="addForm" :rules="formRules"
label-width="100px">
<el-form-item label="届&emsp;&emsp;次" prop="gdhid">
<el-select v-model="formData.gdhid" style="width: 100%"
placeholder="请选择工代会">
<el-option
v-for="item in gdhOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="成&emsp;&emsp;员" prop="users">
<el-select
style="width: 100%"
multiple
v-model="formData.users"
filterable
remote
reserve-keyword
placeholder="请输入姓名或工号查找"
:remote-method="userRemoteMethod"
:loading="userLoading">
<el-option
v-for="item in userOptions"
:key="item.id"
:label="item.username+''+item.loginname+''"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="身&emsp;&emsp;份" prop="roleid">
<el-radio v-model="formData.roleid" v-for="item in roles" :label="item.id">{{item.name}}</el-radio>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" :disabled="subDis" @click="doAdd">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
var E = window.wangEditor
const vue = new Vue({
el: '#app',
data() {
return {
roles: [],
gdhOptions: [],
addDialogVisible: false,
editDialogVisible: false,
viewDialogVisible: false,
tabLoading: false,
formData: {},
tableData: [],
pageForm: {
searchName: "username",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: ""
},
formRules: {
gdhid: [{required: true, message: '必选', trigger: ['blur', 'change']}],
role: [{required: true, message: '必选', trigger: ['blur', 'change']}],
users: [{type: 'array', required: true, message: '必选', trigger: ['blur', 'change']}],
},
subDis: false,
userOptions: [],
userLoading: false,
fileList: [],
delFiles: [],
}
},
methods: {
changeRole(e) {
$.post(base + "/platform/sys/gdh/jfscwyh/changeRole", e, (data) => {
if (data.code == 0) {
this.$message({
message: data.msg,
type: 'success'
});
this.pageData()
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
getRoleName(roleid) {
const o = this.roles.find(v => {
return v.id == roleid
})
return o ? o.name : ''
},
doDelete(e) {
this.$confirm('确定要移除该人员吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: (a, b) => {
if ("confirm" == a) {//确认后再执行
$.post("/platform/sys/gdh/jfscwyh/del", e, (data) => {
if (data.code == 0) {
this.$message({
message: data.msg,
type: 'success'
});
this.pageData();
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
},
doAdd() {
this.$refs["addForm"].validate((valid) => {
if (valid) {
const loading = this.$loading({
lock: true,
text: '数据提交中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.post(base + "/platform/sys/gdh/jfscwyh/addCy", {
gdhid: this.formData.gdhid,
roleid: this.formData.roleid,
users: JSON.stringify(this.formData.users)
}, (data) => {
loading.close()
if (data.code == 0) {
this.addDialogVisible = false
this.$message({
message: '添加成功',
type: 'success'
});
this.pageData()
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
async userRemoteMethod(query) {
if (!this.formData.gdhid) {
this.$message('请先选择届次');
return
}
if (query) {
this.userLoading = true
const arr = await this.queryUser(this.formData.gdhid, query)
this.userOptions = this.userOptions.filter(v => {
return this.formData.users.includes(v.id)
}).concat(arr.filter(v => {
return !this.formData.users.includes(v.id)
}));
this.userLoading = false
}
},
async queryUser(gdhid, query) {
const {data} = await $.get("/platform/sys/gdh/jfscwyh/queryUser", {gdhid, query})
return data
},
openAdd() {
this.userOptions = []
this.formData = {users: []}
this.addDialogVisible = true;
if (this.$refs['addForm']) {
this.$refs['addForm'].resetFields()
}
},
doSearch() {
this.tabKey = new Date().getTime()
this.pageForm.pageNumber = 1
this.pageData()
}
,
pageOrder(column) {//按字段排序
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
}
,
pageNumberChange(val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
}
,
pageSizeChange(val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
}
,
pageData() {//加载分页数据
sublime.showLoadingbar();//显示loading
this.tabLoading = true
$.post(base + "/platform/sys/gdh/jfscwyh/pageData", this.pageForm, (data) => {
sublime.closeLoadingbar();//关闭loading
this.tabLoading = false
if (data.code == 0) {
this.tableData = data.data.list;
this.pageForm.totalCount = data.data.totalCount;
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
async getRoles() {
const {data} = await $.get("/platform/sys/gdh/jfscwyh/getRoles")
return data
}
},
async created() {
this.gdhOptions = await getGdh()
this.$set(this.pageForm, "gdhid", this.gdhOptions.length ? this.gdhOptions[0].id : '')
this.pageData();
this.roles = await this.getRoles()
}
})
</script>
<!--#
}
#-->