235 lines
9.7 KiB
HTML
235 lines
9.7 KiB
HTML
<!--#
|
|
layout("/layouts/platform.html"){
|
|
#-->
|
|
<div id="app" v-cloak>
|
|
<guava ref="guava">
|
|
<el-card shadow="never">
|
|
<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: 100px;">
|
|
<el-option label="姓名" value="u.username"></el-option>
|
|
<el-option label="工号" value="u.loginname"></el-option>
|
|
</el-select>
|
|
</el-input>
|
|
</div>
|
|
<div class="btn-group tool-button">
|
|
<el-select clearable v-model="pageForm.unionid" placeholder="请选择分工会" @change="getJdhList">
|
|
<el-option v-for="i in fghList" :label="i.unionname" :value="i.id" :key="i.id"></el-option>
|
|
</el-select>
|
|
</div>
|
|
<div class="btn-group tool-button">
|
|
<el-select v-model="pageForm.jdhid" placeholder="请选择教代会">
|
|
<el-option v-for="i in jdhList" :label="i.jdhallname" :value="i.id" :key="i.id"></el-option>
|
|
</el-select>
|
|
</div>
|
|
<div class="btn-group tool-button">
|
|
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
|
|
</div>
|
|
<div class="pull-right offscreen-right mt5">
|
|
<el-button type="primary" @click="openAdd">添加代表</el-button>
|
|
</div>
|
|
</el-card>
|
|
|
|
<el-card shadow="never" class="mt20">
|
|
<el-table
|
|
:data="tableData"
|
|
@sort-change='pageOrder'>
|
|
<el-table-column label="序号" type="index" width="50"></el-table-column>
|
|
<el-table-column
|
|
align="center"
|
|
header-align="center"
|
|
v-for="column in tableColumns"
|
|
:label="column.label"
|
|
:prop="column.prop"
|
|
:sortable="column.sortable"
|
|
show-overflow-tooltip></el-table-column>
|
|
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
|
|
width="150px">
|
|
<template scope="{row}">
|
|
<el-button size="mini" type="danger" :loading="row.loading" @click="doDelete(row)">删除
|
|
</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
|
|
</el-table>
|
|
|
|
<!--#include("/layouts/pagination.html"){}#-->
|
|
</el-card>
|
|
</guava>
|
|
|
|
<el-dialog :title="dbTitle" :visible.sync="addDialogVisible" width="40%">
|
|
<el-form :model="formData" ref="AddForm" :rules="rules" label-width="80px">
|
|
<el-form-item prop="unionid" label="分工会:">
|
|
<el-select clearable v-model="formData.unionid" placeholder="请选择分工会" @change="getJdhList2"
|
|
style="width: 100%">
|
|
<el-option v-for="i in fghList" :label="i.unionname" :value="i.id" :key="i.id"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item prop="jdhid" label="教代会:">
|
|
<el-select v-model="formData.jdhid" placeholder="请选择教代会" style="width: 100%">
|
|
<el-option v-for="i in jdhList2" :label="i.jdhallname" :value="i.id" :key="i.id"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item prop="userList" label="用户">
|
|
<el-select
|
|
v-model="formData.userList"
|
|
value-key="id"
|
|
filterable
|
|
remote
|
|
multiple
|
|
reserve-keyword
|
|
placeholder="请输入工号或者姓名"
|
|
:remote-method="queryNotDbUser" style="width: 100%">
|
|
<el-option
|
|
v-for="item in notUserList"
|
|
:key="item.id"
|
|
:label="item.username+'-'+item.loginname+'-'+item.unitname"
|
|
: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>
|
|
|
|
</div>
|
|
|
|
<script>
|
|
var vue = new Vue({
|
|
el: '#app',
|
|
mixins: [initTableMixins],
|
|
data() {
|
|
return {
|
|
dbTitle: "新增代表",
|
|
addDialogVisible: false,
|
|
pageForm: {
|
|
searchName: "u.username",
|
|
jdhid: ""
|
|
},
|
|
fghList: [],
|
|
jdhList: [],
|
|
jdhList2: [],
|
|
notUserList: [],
|
|
tableColumns: [
|
|
{prop: 'loginname', label: '工号', sortable: true},
|
|
{prop: 'username', label: '姓名', sortable: true},
|
|
{prop: 'sex', label: '性别', sortable: true},
|
|
{prop: 'mobile', label: '联系方式', sortable: true},
|
|
{prop: 'unitname', label: '所属单位', sortable: true},
|
|
{prop: 'unionname', label: '所属工会', sortable: true},
|
|
{prop: 'jdhallname', label: '教代会', sortable: true},
|
|
],
|
|
formData: {
|
|
jdhid: "",
|
|
userList: ""
|
|
},
|
|
rules: {
|
|
unionid: [{required: true, trigger: ['blur', 'change'], message: '请选择工会'}],
|
|
userList: [{required: true, trigger: ['blur', 'change'], message: '请选择代表'}],
|
|
},
|
|
}
|
|
},
|
|
methods: {
|
|
doDelete(row) {
|
|
const {id, userid, jdhid} = row
|
|
this.$confirm('确定要删除该代表吗?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning',
|
|
callback: async (a, b) => {
|
|
if ("confirm" === a) {//确认后再执行
|
|
|
|
this.$set(row, "loading", true)
|
|
|
|
const resp = await $.post(loc() + "/doDelete", {id: id, userid: userid, jdhid: jdhid});
|
|
this.$set(row, "loading", false)
|
|
this.pageData()
|
|
|
|
}
|
|
}
|
|
})
|
|
|
|
},
|
|
doAdd() {
|
|
this.$refs['AddForm'].validate(async valid => {
|
|
if (valid) {
|
|
const loading = this.$loading({
|
|
lock: true,
|
|
text: '正在添加中,请稍后...',
|
|
spinner: 'el-icon-loading',
|
|
background: "rgba(0,0,0,.45)"
|
|
});
|
|
this.formData.userList = JSON.stringify(this.formData.userList)
|
|
const {data} = await $.post(loc() + "/doAdd", this.formData)
|
|
this.pageData()
|
|
this.addDialogVisible = false
|
|
loading.close()
|
|
}
|
|
})
|
|
},
|
|
async openAdd() {
|
|
this.fghList = await getUnion()
|
|
if ("${@shiro.hasRole('H04')}" === 'true') {
|
|
this.formData.unionid = this.fghList[0].id
|
|
await this.getJdhList2()
|
|
}
|
|
this.addDialogVisible = true
|
|
if (this.$refs["AddForm"]) this.$refs["AddForm"].resetFields()
|
|
},
|
|
async queryNotDbUser(key) {
|
|
if (this.formData.unionid === '') {
|
|
this.$message.info('请先选择分工会')
|
|
return
|
|
}
|
|
this.formData.keyword = key
|
|
const {data} = await $.post(loc() + "/queryNotUser", this.formData)
|
|
this.notUserList = data.list
|
|
|
|
},
|
|
async getJdhList() {
|
|
this.jdhList = []
|
|
this.pageForm.jdhid = ""
|
|
const resp = await $.post(loc() + "/getJdhList", {unionid: this.pageForm.unionid})
|
|
if (resp.length > 0 && this.pageForm.unionid) {
|
|
this.jdhList = resp
|
|
this.pageForm.jdhid = resp[0].id
|
|
} else {
|
|
this.jdhList = []
|
|
}
|
|
},
|
|
async getJdhList2() {
|
|
this.jdhList2 = []
|
|
this.formData.jdhid = ""
|
|
const resp = await $.post(loc() + "/getJdhList", {unionid: this.formData.unionid})
|
|
if (resp.length > 0 && this.formData.unionid) {
|
|
this.jdhList2 = resp
|
|
this.formData.jdhid = resp[0].id
|
|
} else {
|
|
this.jdhList2 = []
|
|
}
|
|
},
|
|
},
|
|
async created() {
|
|
this.fghList = await getUnions()
|
|
if ("${@shiro.hasRole('H04')}" === 'true') {
|
|
this.pageForm.unionid = this.fghList[0].id
|
|
await this.getJdhList()
|
|
}
|
|
this.pageData()
|
|
}
|
|
})
|
|
</script>
|
|
|
|
<!--#
|
|
}
|
|
#-->
|