277 lines
9.8 KiB
Vue
277 lines
9.8 KiB
Vue
<template>
|
|
<guava ref="guava">
|
|
<template name="el-zoom-in-center">
|
|
<div v-show="tabShow">
|
|
<el-row class="header navbar bg-white shadow">
|
|
<div class="btn-group tool-button mt5">
|
|
<div>
|
|
<el-input placeholder="请输入内容" 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.loginname"></el-option>
|
|
<el-option label="姓名" value="u.username"></el-option>
|
|
</el-select>
|
|
</el-input>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="btn-group tool-button mt5">
|
|
<el-select clearable v-model="pageForm.jdhid" placeholder="请选择教代会">
|
|
<el-option
|
|
v-for="item in jdhList"
|
|
:key="item.id"
|
|
:label="item.jdhallname"
|
|
:value="item.id">
|
|
</el-option>
|
|
</el-select>
|
|
</div>
|
|
<div class="btn-group tool-button mt5">
|
|
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
|
|
</div>
|
|
<div class="pull-right offscreen-right mt5">
|
|
<el-button size="medium" @click="openAdd"><i class="ti-plus"></i> 添加成员</el-button>
|
|
</div>
|
|
</el-row>
|
|
|
|
<el-row class="el-table-container">
|
|
<el-table :data="tableData" @sort-change='pageOrder'>
|
|
<el-table-column label="序号" type="index" header-align="center" align="center">
|
|
<template scope="scope">
|
|
<span>{{ scope.$index + (pageForm.pageNumber - 1) * pageForm.pageSize + 1 }} </span></template>
|
|
</el-table-column>
|
|
<el-table-column prop="loginname" label="工号"></el-table-column>
|
|
<el-table-column prop="username" label="姓名"></el-table-column>
|
|
<el-table-column sortable prop="sex" label="性别"></el-table-column>
|
|
<el-table-column prop="mobile" label="手机"></el-table-column>
|
|
<el-table-column sortable prop="dwname" label="单位"></el-table-column>
|
|
<el-table-column sortable prop="jdhallname" label="教代会"></el-table-column>
|
|
<el-table-column sortable prop="sf" label="身份">
|
|
<template slot-scope="{row}">
|
|
<span v-if="row.sf===1" class="text-primary">成员</span>
|
|
<span v-if="row.sf===2" class="text-primary">副秘书长</span>
|
|
<span v-if="row.sf===3" class="text-primary">秘书长</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" header-align="center" label="操作" width="100px">
|
|
<template slot-scope="{row}">
|
|
<el-dropdown>
|
|
<el-button size="mini">
|
|
<i class="ti-settings"></i>
|
|
<span class="ti-angle-down"></span>
|
|
</el-button>
|
|
<el-dropdown-menu slot="dropdown">
|
|
<el-dropdown-item @click.native="openView(row)">
|
|
查看
|
|
</el-dropdown-item>
|
|
<el-dropdown-item @click.native="doDelete(row.id)">
|
|
删除
|
|
</el-dropdown-item>
|
|
<el-dropdown-item v-if="row.sf!==1" @click.native="updateSf(row.id,1)"
|
|
class="text-primary">设置组员
|
|
</el-dropdown-item>
|
|
<el-dropdown-item v-if="row.sf!==2" @click.native="updateSf(row.id,2)"
|
|
class="text-primary">设置副秘书长
|
|
</el-dropdown-item>
|
|
<el-dropdown-item v-if="row.sf!==3" @click.native="updateSf(row.id,3)"
|
|
class="text-primary">设置秘书长
|
|
</el-dropdown-item>
|
|
</el-dropdown-menu>
|
|
</el-dropdown>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-row>
|
|
|
|
<!--#include("/layouts/pagination.html"){}#-->
|
|
|
|
<el-dialog title="添加成员" :visible.sync="addDialogVisible">
|
|
<el-form :model="formData" ref="addForm" :rules="rules" label-width="100px">
|
|
<el-form-item prop="jdhid" label="所属教代会">
|
|
<el-select v-model="formData.jdhid" @change="jdhChange" placeholder="选择教代会">
|
|
<el-option
|
|
v-for="item in jdhList"
|
|
:key="item.id"
|
|
:label="item.jdhallname"
|
|
:value="item.id">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item prop="cyuser" label="主席团成员">
|
|
<el-select
|
|
v-model="formData.cyuser"
|
|
filterable
|
|
remote
|
|
multiple
|
|
value-key="id"
|
|
placeholder="请输入用户工号或姓名关键字"
|
|
:remote-method="queryUser">
|
|
<el-option
|
|
v-for="item in userList"
|
|
:key="item.id"
|
|
:label="item.loginname+' '+item.username+' '+item.dwname"
|
|
:value="item">
|
|
</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>
|
|
</template>
|
|
|
|
<template #view>
|
|
<db-info :active="'1'" ref="DbInfo"></db-info>
|
|
</template>
|
|
|
|
</guava>
|
|
</template>
|
|
|
|
<script>
|
|
module.exports = {
|
|
data() {
|
|
return {
|
|
tabShow: true,
|
|
rules: {
|
|
jdhid: [{required: true, message: '请选择教代会', trigger: ['blur', 'change']}],
|
|
cyuser: [{required: true, message: '请搜索并选择用户', trigger: ['blur', 'change']}]
|
|
},
|
|
addDialogVisible: false,
|
|
roleDialogVisible: false,
|
|
tableData: [],
|
|
jdhList: [],
|
|
userList: [],
|
|
pageForm: {
|
|
searchName: "u.username",
|
|
...getPageForm(),
|
|
jdhid: '',
|
|
|
|
},
|
|
roleData: {jdh_cbldxz: {}, sys_user: {}, sys_unit: {}, jdh_jdhxx: {}},
|
|
formData: {
|
|
cyuser: [],
|
|
jdhid: ''
|
|
},
|
|
dbModal: false,
|
|
uid: ''
|
|
}
|
|
},
|
|
components: {
|
|
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
|
'db-info': httpVueLoader('/components/jdh/dbinfo.vue')
|
|
},
|
|
methods: {
|
|
openView(row) {
|
|
const {userid} = row
|
|
this.$refs.DbInfo.openView(userid)
|
|
this.$refs.guava.view()
|
|
},
|
|
queryUser(query) {
|
|
if (this.formData.jdhid === '') {
|
|
this.$message.info('请先选择教代会')
|
|
return
|
|
}
|
|
if (query !== '') {
|
|
$.get(base + '/platform/jdh/zzjg/zxwyh/queryUser', {
|
|
keyword: query,
|
|
jdhid: this.formData.jdhid
|
|
}).then(res => {
|
|
this.userList = QC(this.formData.cyuser, res.data.list, 'id')
|
|
})
|
|
}
|
|
},
|
|
doDelete(id) {
|
|
this.$confirm('确定要删除吗?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning',
|
|
callback: async (a, b) => {
|
|
if ("confirm" == a) {//确认后再执行
|
|
const res = await GET('/platform/jdh/zzjg/zxt/doDelete', {id: id})
|
|
console.log(res)
|
|
if (res.code === 0) {
|
|
this.pageData()
|
|
this.$message.success(res.msg)
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
jdhChange() {
|
|
this.userList = []
|
|
this.formData.cyuser = []
|
|
},
|
|
openAdd() {
|
|
this.formData = {cyuser: [], jdhid: this.pageForm.jdhid}
|
|
this.userList = []
|
|
this.addDialogVisible = true
|
|
},
|
|
doAdd() {
|
|
this.$refs["addForm"].validate(valid => {
|
|
if (valid) {
|
|
$.post(base + '/platform/jdh/zzjg/zxt/doAdd', {
|
|
jdhid: this.formData.jdhid,
|
|
user: this.formData.cyuser
|
|
}).then(res => {
|
|
if (res.code === 0) {
|
|
this.addDialogVisible = false
|
|
this.pageData()
|
|
this.$message.success(res.msg)
|
|
}
|
|
})
|
|
}
|
|
})
|
|
|
|
},
|
|
updateSf(id, sf) {
|
|
$.post(base + '/platform/jdh/zzjg/zxt/updateSf', {id: id, sf: sf}).then(res => {
|
|
if (res.code === 0) {
|
|
this.$message.success(res.msg)
|
|
this.pageData()
|
|
}
|
|
})
|
|
},
|
|
doSearch() {
|
|
this.pageForm.pageNumber = 1
|
|
this.pageData()
|
|
},
|
|
pageData() {//加载分页数据
|
|
sublime.showLoadingbar();//显示loading
|
|
this.tabLoading = true
|
|
$.post("/platform/jdh/zzjg/zxt/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.error(data.msg);
|
|
}
|
|
}, "json");
|
|
},
|
|
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();
|
|
},
|
|
},
|
|
async created() {
|
|
this.jdhList = await getAllJdh()
|
|
if (this.jdhList.length > 0) {
|
|
this.pageForm.jdhid = this.jdhList[0].id
|
|
}
|
|
this.pageData()
|
|
}
|
|
}
|
|
</script> |