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,285 @@
<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>
</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, row.userid, row.jdhid)">
删除
</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-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-row :gutter="40">
<el-form-item prop="jdhid" label="所属教代会">
<el-select v-model="formData.jdhid" @change="jdhChange" placeholder="选择教代会" style="width: 100%">
<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 style="width: 100%"
v-model="formData.cyuser"
filterable
remote
multiple
reserve-keyword
placeholder="请输入用户工号或姓名关键字"
:remote-method="queryUser">
<el-option
v-for="item in userList"
:key="item.id"
:label="item.loginname+' '+item.username+' '+item.dwname"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-row>
</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 {
visible: false,
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 = res.data.list
})
}
},
doDelete(id, userid, jdhid) {
this.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.post(base + '/platform/jdh/zzjg/cbldxz/doDelete', {
id: id,
userid: userid,
jdhid: jdhid
}).then(res => {
if (res.code === 0) {
this.pageData()
this.$message.success(res.msg)
}
})
}).catch(() => {
})
},
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/cbldxz/doAdd', {
jdhid: this.formData.jdhid,
userids: 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/cbldxz/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/cbldxz/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>
@@ -0,0 +1,213 @@
<template>
<div>
<el-tabs tab-position="top" v-model="activeName" v-loading="loading">
<el-tab-pane label="会议信息" name="1">
<el-form label-suffix="" label-position="left" style="padding: 20px 0">
<el-form-item style="text-align: center">
<span style="font-weight: 700;font-size: 16px">{{ viewData.meeting_name }}</span>
</el-form-item>
<el-row gutter="450">
<el-col :span="12">
<el-form-item label="所在单位">
{{ viewData.unit_name }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请时间">
{{ viewData.create_time }}
</el-form-item>
</el-col>
</el-row>
<el-row gutter="20">
<el-col :span="8">
<el-form-item label="申请人">
{{ viewData.username }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="user_name" label="有无选举事项">
<i v-if="viewData.have_elect" class="fa fa-circle text-success ml5">&emsp13;</i>
<i v-if="!viewData.have_elect" class="fa fa-circle text-danger ml5">&emsp13;</i>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="审核状态">
<span :style="'color:'+viewData.color">{{ viewData.state_name }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="届&emsp;&emsp;次">
{{ viewData.jdhallname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="会议时间">
{{ viewData.meeting_time }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="上次大会时间">
{{ viewData.before_meeting_time }}
</el-form-item>
</el-col>
</el-row>
<el-row gutter="20">
<el-col :span="6">
<el-form-item label="正式代表">
{{ viewData.official_delegate }}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="其中教师">
{{ viewData.teacher_delegate }}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="列席代表">
{{ viewData.attend_delegate }}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="其中特邀">
{{ viewData.special_delegate }}
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="user_name" label="会议议题">
<span v-html="viewData.meeting_topic"></span>
</el-form-item>
<el-form-item prop="user_name" label="备&emsp;&emsp;注">
{{ viewData.remark }}
</el-form-item>
<el-form-item label="附&emsp;&emsp;件">
<file-upload v-if="viewData.files&&viewData.files.length"
:files="viewData.files"
:view="true"></file-upload>
<span v-else>暂无</span>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="院级党委意见" name="2" v-if="viewData.party_committee_id">
<el-form label-width="130px" style="padding: 20px 0">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header"></el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人:">
{{ viewData.party_name }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.party_committee_time }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
{{ viewData.party_committee_opinion }}
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会意见" name="3" v-if="viewData.school_union_id">
<el-form label-width="130px" style="padding: 20px 0">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header"></el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人:">
{{ viewData.school_name }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.school_union_time }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
{{ viewData.school_union_opinion }}
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane v-if="handle" :label="label" name="999">
<slot name="handle"></slot>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
module.exports = {
props: {
id: String,
handle: {
type: Boolean,
default: false,
},
label: {
type: String,
default: '审核'
},
panes: {
type: Array,
default: []
}
},
data() {
return {
activeName: '1',
loading: true,
viewData: {},
replyFiles: []
}
},
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
},
methods: {
hasPane(name) {
if (!this.handle) {
return true
}
return this.panes.includes(name)
},
async getMeetingInfo(id) {
const {data} = await $.get(base + "/platform/jdh/level2/info/getMeetingInfo", {id})
return data
},
async openView(id) {
this.loading = true
this.viewData = await this.getMeetingInfo(id)
if (this.viewData) {
if (this.viewData.files) {
this.viewData.files = JSON.parse(this.viewData.files)
}
this.activeName = this.handle ? "999" : "1"
} else {
this.viewData = {}
this.$message.error("获取会议信息失败");
}
this.loading = false
}
}
}
</script>
<style>
</style>
@@ -0,0 +1,74 @@
<template>
<div>
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入会议名称" clearable v-model="page.searchKeyword"
@keyup.enter.native="$emit('doSearch')">
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable v-model="page.unionId" filterable placeholder="请选择工会" @change="unionChange">
<el-option
v-for="item in unionOptions"
:key="item.id"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable v-model="page.unitId" filterable placeholder="请选择单位">
<el-option
v-for="item in unitOptions"
: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="$emit('search')"></el-button>
</div>
<div class="pull-right offscreen-right mt5" v-if="audit">
<el-radio-group v-model="page.isAudit" @change="$emit('search')">
<el-radio-button label="true">已审核</el-radio-button>
<el-radio-button label="false">未审核</el-radio-button>
</el-radio-group>
</div>
</el-row>
</div>
</template>
<script>
module.exports = {
props: {
page: {
type: Object,
default: {}
},
audit: {
type: Boolean,
default: true
}
},
data() {
return {
unionOptions: [],
unitOptions: [],
}
},
methods: {
async unionChange(val) {
this.unitOptions = await getUnits(val)
}
},
async created() {
this.unionOptions = await getUnions(null)
this.unitOptions = await getUnits(null)
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,65 @@
<template>
<div>
<el-row class="el-table-container">
<el-table :data="table" style="width: 100%" row-key="id" @sort-change="(c)=>{$emit('page_order',c)}"
v-loading="loading">
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope">
<span>{{ scope.$index + (page.pageNumber - 1) * page.pageSize + 1 }} </span>
</template>
</el-table-column>
<el-table-column label="会议名称" prop="meeting_name" header-align="center" align="center"
width="300px"></el-table-column>
<el-table-column label="会议时间" prop="meeting_time" header-align="center" align="center">
<template scope="{row:{meeting_time}}">
{{moment(meeting_time).format('YYYY-MM-DD')}}
</template>
</el-table-column>
<el-table-column label="届次" prop="jdhallname" 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="unit_name" header-align="center" align="center"></el-table-column>-->
<el-table-column label="正式代表人数" prop="official_delegate" header-align="center" align="center"></el-table-column>
<!-- <el-table-column label="教师代表人数" prop="teacher_delegate" header-align="center" align="center"></el-table-column>-->
<el-table-column label="列席代表人数" prop="attend_delegate" header-align="center" align="center"></el-table-column>
<el-table-column label="特邀代表人数" prop="special_delegate" header-align="center" align="center"></el-table-column>
<el-table-column label="有无选举事项" prop="have_elect" header-align="center" align="center">
<template scope="scope">
<i v-if="scope.row.have_elect" class="fa fa-circle text-success ml5">&emsp13;有</i>
<i v-if="!scope.row.have_elect" class="fa fa-circle text-danger ml5">&emsp13;无</i>
</template>
</el-table-column>
<el-table-column label="审核状态" prop="state_id" sortable header-align="center" align="center">
<template scope="scope">
<span :style="'color:'+scope.row.color">{{ scope.row.state_name }}</span>
</template>
</el-table-column>
<slot name="column"></slot>
</el-table>
</el-row>
</div>
</template>
<script>
module.exports = {
props: {
page: {
type: Object,
default: {}
},
table: {
type: Array,
default: []
},
loading: {
type: Boolean,
default: false
}
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,280 @@
<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,row.userid,row.jdhid)">
删除
</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-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!==1" @click.native="updateSf(row.id,1)"
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
reserve-keyword
placeholder="请输入用户工号或姓名关键字"
:remote-method="queryUser">
<el-option
v-for="item in userList"
:key="item.id"
:label="item.loginname+' '+item.username+' '+item.dwname"
: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>
</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 = res.data.list
})
}
},
doDelete(id, userid, jdhid) {
this.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.post(base + '/platform/jdh/zzjg/zgscxz/doDelete', {
id: id,
userid: userid,
jdhid: jdhid
}).then(res => {
if (res.code === 0) {
this.pageData()
this.$message.success(res.msg)
}
})
}).catch(() => {
})
},
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/zgscxz/doAdd', {
jdhid: this.formData.jdhid,
userids: 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/zgscxz/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/zgscxz/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>
@@ -0,0 +1,277 @@
<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>
@@ -0,0 +1,146 @@
<template>
<div>
<el-tabs tab-position="top" v-model="active">
<el-tab-pane label="基本信息" name="1">
<el-form label-width="130px" style="padding: 20px 0">
<vi-title title="基本信息"></vi-title>
<el-row gutter="20">
<el-col :span="8">
<el-form-item label="姓名:">
{{ dbData.username }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别:">
{{ dbData.sex }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="年龄:">
{{ age }}
</el-form-item>
</el-col>
</el-row>
<el-row gutter="20">
<el-col :span="8">
<el-form-item label="民族:">
{{ dbData.mz }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="文化程度:">
{{ dbData.xl }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="政治面貌:">
{{ dbData.zzmm }}
</el-form-item>
</el-col>
</el-row>
<el-row gutter="20">
<el-col :span="8">
<el-form-item label="所在部门:">
{{ dbData.dwname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职称:">
{{ dbData.zc }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职务:">
{{ dbData.zw }}
</el-form-item>
</el-col>
</el-row>
<vi-title title="个人简历"></vi-title>
<div v-html="dbData.grjl"></div>
</el-form>
</el-tab-pane>
<el-tab-pane label="预选信息" name="2" v-if="dbData.rewards">
<el-form label-width="130px" style="padding: 20px 0">
<vi-title title="近几年奖惩情况"></vi-title>
<div v-html="dbData.rewards"></div>
<el-form-item label="附&emsp;&emsp;件" label-width="125px" class="view-header"></el-form-item>
<file-upload v-if="dbData.files&&dbData.files.length"
:files="dbData.files"
:view="true"></file-upload>
<span v-else>暂无</span>
</el-form>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
module.exports = {
data() {
return {
active: "1",
dbData: {}
}
},
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
},
methods: {
async openView(id) {
const {data, code, msg} = await $.get("/platform/jdh/Common/findDbxx", {id})
if (code === 0) {
this.dbData = data
if (this.dbData.files) {
this.dbData.files = JSON.parse(data.files)
}
this.active = this.handle ? "999" : "1"
} else {
this.dbData = {}
this.$message.error("获取会议信息失败");
}
}
},
props: {
id: String,
handle: {
type: Boolean,
default: false,
},
label: {
type: String,
default: '审核'
},
panes: {
type: Array,
default: []
}
},
computed: {
age() {
if (this.dbData.birthday) {
let y1 = parseInt(this.dbData.birthday.split('-')[0])
let y2 = parseInt(moment().format('YYYY'))
return (y2 - y1) + '岁'
}
return ''
}
},
}
</script>
<style>
td {
text-align: center;
}
</style>
@@ -0,0 +1,67 @@
<template>
<table class="tabInfo">
<tr>
<td class="title">会议名称</td>
<td class="content" colspan="3">{{data.hyname}}</td>
</tr>
<tr>
<td class="title">所属基层工会</td>
<td class="content">{{data.unionname}}</td>
<td class="title">申请状态</td>
<td class="content">
<span class="text-primary" v-if="data.shzt===1">待校工会审核</span>
<span class="text-danger" v-if="data.shzt===2">拒绝</span>
<span class="text-success" v-if="data.shzt===3">通过</span>
</td>
</tr>
<tr>
<td class="title">填表人</td>
<td class="content">{{data.tbrname}}</td>
</tr>
<tr>
<td class="title">会议时间</td>
<td class="content">{{data.hysj}}</td>
<td class="title">会议地点</td>
<td class="content">{{data.hydd}}</td>
</tr>
<tr>
<td class="title" colspan="4">指导思想</td>
</tr>
<tr>
<td class="content" colspan="4" style="text-align: left">
<div v-html="data.zdsx"></div>
</td>
</tr>
<tr>
<td class="title" colspan="4">会议议题</td>
</tr>
<tr>
<td class="content" colspan="4" style="text-align: left">
<div v-html="data.hyyt"></div>
</td>
</tr>
<tr>
<td class="title" colspan="4">会议进程</td>
</tr>
<tr>
<td class="content" colspan="4" style="text-align: left">
<div v-html="data.hyjc"></div>
</td>
</tr>
</table>
</template>
<script>
module.exports = {
props:{
data:{
type:Object,
required:true
}
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,74 @@
<template>
<el-row>
<el-table :data="data">
<el-table-column label="序号" type="index" header-align="center" align="center">
<template scope="scope"><span>{{scope.$index+(pf.pageNumber - 1) * pf.pageSize + 1}} </span></template>
</el-table-column>
<el-table-column label="工号" prop="loginname"></el-table-column>
<el-table-column label="姓名" prop="username"></el-table-column>
<el-table-column label="性别" prop="sex"></el-table-column>
<el-table-column label="手机" prop="mobile"></el-table-column>
<el-table-column label="单位" >
<tempalate slot-scope="scope">
<span v-if="name==8">{{scope.row.dbunitname}}</span>
<span v-else>{{scope.row.dwname}}</span>
</tempalate>
</el-table-column>
<el-table-column label="身份">
<tempalate slot-scope="scope">
<span v-if="name==8">{{scope.row.rolename}}</span>
<span v-else>{{getSf(scope.row.sf)}}</span>
</tempalate>
</el-table-column>
</el-table>
</el-row>
</template>
<script>
module.exports = {
data(){
return{
tabname:this.name
}
},
props:{
data:{
type:Array,
default:()=>[]
},
name:{
type:Number
},
pf:{
type:Object,
default(){
return{
pageNumber:1,
pageSize:10,
totalCount:0,
}
}
}
},
computed:{
getSf(){
return (sf)=>{
if(this.name==2){
return sf==1?'组员':'负责人'
}else if(this.name==3){
return sf==1?'组员':sf==2?'副组长':sf==3?'组长':''
}else if(this.name==4){
return sf==1?'成员':sf==2?'副秘书长':sf==3?'秘书长':''
}else if(this.name==5){
return sf==1?'成员':sf==2?'副主任':sf==3?'主任':''
}
}
}
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,469 @@
<template>
<guava ref="guava">
<template name="el-zoom-in-center">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入内容" v-model="pageForm.wyhname" @keyup.enter.native="doSearch"></el-input>
</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 sortable prop="jdhallname" label="教代会"></el-table-column>
<el-table-column prop="wyhname" label="委员会名称"></el-table-column>
<el-table-column prop="zrmobile" label="主任及联系方式"></el-table-column>
<el-table-column prop="gzzz" label="工作职责" show-overflow-tooltip></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="openEdit(row)">
编辑
</el-dropdown-item>
<el-dropdown-item @click.native="doDelete(row)">
删除
</el-dropdown-item>
<el-dropdown-item @click.native="openEditUser(row)"
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="120px">
<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="name" label="委员会名称">
<el-select v-model="formData.wyh" value-key="id">
<el-option v-for="i in wyhList" :label="i.name" :value="i" :key="i.id"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="gzzz" label="委员会工作职责">
<el-input type="textarea" rows="5" v-model.trim="formData.gzzz"></el-input>
</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="titleEdit" :visible.sync="editDialogVisible">
<el-form :model="formData" ref="editForm" :rules="rules" label-width="120px">
<el-form-item prop="jdhid" label="所属教代会">
<el-select v-model="formData.jdhid" disabled 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="name" label="委员会名称">
<el-select v-model="formData.wyh" value-key="i.id" disabled>
<el-option v-for="i in wyhList" :label="i.name" :value="i" :key="i.id"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="gzzz" label="委员会工作职责">
<el-input type="textarea" rows="5" v-model.trim="formData.gzzz"></el-input>
</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="titleEditUser" :visible.sync="userDialogVisible" width="70%">
<el-row>
<div class="btn-group tool-button mt5">
<div>
<el-select
size="mini"
style="width: 400px"
v-model="userFormData.userid"
filterable
remote
placeholder="请输入工号或姓名关键字"
:remote-method="queryUser">
<el-option
v-for="item in userList"
:key="item.id"
:label="item.username+' '+item.loginname+'' + item.dwname"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<div class="btn-group tool-button mt5">
<el-button size="mini" type="primary" @click="addUser2Tab " icon="el-icon-circle-plus">添加成员</el-button>
</div>
</el-row>
<el-row style="margin-top: 15px">
<el-table :data="userTableData" height="300">
<el-table-column prop="loginname" label="工号"></el-table-column>
<el-table-column prop="username" label="姓名"></el-table-column>
<el-table-column prop="sex" label="性别"></el-table-column>
<el-table-column prop="mobile" label="手机号码"></el-table-column>
<el-table-column prop="dwname" label="所属单位"></el-table-column>
<el-table-column prop="sf" label="身份">
<template slot-scope="scope">
<span v-if="scope.row.sf===1" class="text-primary">成员</span>
<span v-if="scope.row.sf===2" class="text-primary">副主任</span>
<span v-if="scope.row.sf===3" class="text-primary">主任</span>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<el-dropdown placement="bottom">
<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-if="scope.row.sf!==3" @click.native="updateSf(scope.row,3)">主任
</el-dropdown-item>
<el-dropdown-item v-if="scope.row.sf!==2" @click.native="updateSf(scope.row,2)">副主任
</el-dropdown-item>
<el-dropdown-item v-if="scope.row.sf!==1" @click.native="updateSf(scope.row,1)">成员
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-button type="danger" size="mini" @click="doDeleteUser(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button type="danger" @click="userDialogVisible = false"> </el-button>
</span>
</el-dialog>
<el-dialog title="详情" :visible.sync="viewDialogVisible">
<table class="tabInfo">
<tr>
<td class="title">委员会名称</td>
<td class="content">{{ viewData.wyhname }}</td>
</tr>
<tr>
<td class="title">所属教代会</td>
<td class="content">{{ viewData.jdhallname }}</td>
</tr>
<tr>
<td class="title">主任</td>
<td class="content">
<template v-for="u in viewData.userList">
<span class="mr5" v-if="u.sf===3">{{ u.username }}</span>
</template>
</td>
</tr>
<tr>
<td class="title">副主任</td>
<td class="content">
<template v-for="u in viewData.userList">
<span class="mr5" v-if="u.sf===2">{{ u.username }}</span>
</template>
</td>
</tr>
<tr>
<td class="title">成员</td>
<td class="content">
<template v-for="u in viewData.userList">
<span class="mr5" v-if="u.sf===1">{{ u.username }}</span>
</template>
</td>
</tr>
<tr>
<td class="title">委员会工作职责</td>
<td class="content">{{ viewData.gzzz }}</td>
</tr>
</table>
</el-dialog>
</template>
</guava>
</template>
<script>
module.exports = {
data() {
return {
titleEditUser: "",
titleEdit: "",
rules: {
jdhid: [{required: true, message: '请选择教代会', trigger: ['blur', 'change']}],
wyh: [{required: true, message: '请选择委员会', trigger: ['blur', 'change']}],
gzzz: [{required: true, message: '请输入委员会工作职责', trigger: ['blur', 'change']}]
},
addDialogVisible: false,
editDialogVisible: false,
roleDialogVisible: false,
tableData: [],
jdhList: [],
userList: [],
pageForm: {
searchName: "u.username",
...getPageForm(),
jdhid: '',
wyhname: '',
union_id: ""
},
roleData: {jdh_cbldxz: {}, sys_user: {}, sys_unit: {}, jdh_jdhxx: {}},
formData: {},
wyhList: [],
userList: [],
userDialogVisible: false,
userFormData: {},
userTableData: [],
viewDialogVisible: false,
viewData: {},
}
},
methods: {
queryKyWyhMc(jdhid) {
if (jdhid !== '') {
$.get(base + '/platform/jdh/zzjg/zmwyh/queryKyWyhMc', {jdhid: jdhid}).then(res => {
if (res.code === 0) {
this.wyhList = res.data
}
})
}
},
openEdit(obj) {
this.titleEdit = obj.wyhname + '编辑'
this.wyhList = [{id: obj.mcid, name: obj.wyhname}]
this.formData = {
id: obj.id,
wyh: {id: obj.mcid, name: obj.wyhname},
gzzz: obj.gzzz,
jdhid: obj.jdhid
}
this.editDialogVisible = true
},
doEdit() {
this.$refs["editForm"].validate(valid => {
if (valid) {
this.formData.name = this.formData.wyh.name
this.formData.mcid = this.formData.wyh.id
$.post(base + '/platform/jdh/zzjg/zmwyh/doEdit', this.formData).then(res => {
if (res.code === 0) {
this.editDialogVisible = false
this.pageData()
this.$message.success(res.msg)
}
})
}
})
},
doDelete(obj) {
this.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.post(base + '/platform/jdh/zzjg/zmwyh/doDelete', {id: obj.id, jdhid: obj.jdhid}).then(res => {
if (res.code === 0) {
this.pageData()
this.$message.success(res.msg)
}
})
}).catch(() => {
})
},
jdhChange(jdhid) {
this.queryKyWyhMc(jdhid)
},
openAdd() {
this.formData = {
jdhid: this.jdhList.length > 0 ? this.jdhList[0].id : '',
name: '',
gzzz: ''
}
this.queryKyWyhMc(this.formData.jdhid)
this.addDialogVisible = true
},
doAdd() {
this.$refs["addForm"].validate(valid => {
if (valid) {
this.formData.name = this.formData.wyh.name
this.formData.mcid = this.formData.wyh.id
$.post(base + '/platform/jdh/zzjg/zmwyh/doAdd', this.formData).then(res => {
if (res.code === 0) {
this.addDialogVisible = false
this.pageData()
this.$message.success(res.msg)
}
})
}
})
},
//用户管理
userData(wyhid) {
$.get(base + '/platform/jdh/zzjg/zmwyh/userData', {wyhid: wyhid}).then(res => {
if (res.code === 0) {
this.userTableData = res.data
}
})
},
openEditUser(obj) {
this.titleEditUser = obj.wyhname + "设置"
this.userFormData = {
userid: '',
wyhid: obj.id,
jdhid: obj.jdhid,
wyhmcid: obj.mcid
}
this.userData(obj.id)
this.userDialogVisible = true
},
queryUser(query) {
if (query !== '') {
$.get(base + '/platform/jdh/zzjg/zxwyh/queryUser', {
keyword: query,
jdhid: this.userFormData.jdhid
}).then(res => {
//this.userList = QC(this.users,res.data.list,'id')
this.userList = res.data.list
})
}
},
addUser2Tab() {
if (this.userFormData.userid === '') {
this.$message.info('请先选择用户!')
return
}
$.post(base + '/platform/jdh/zzjg/zmwyh/doAddUser', this.userFormData).then(res => {
if (res.code === 0) {
this.userFormData.userid = ''
this.userList = []
this.userData(this.userFormData.wyhid)
}
})
},
updateSf(obj, sf) {
$.post(base + '/platform/jdh/zzjg/zmwyh/updateSf',
{
userid: obj.id,
zmwyhid: obj.zmwyhid,
sf: sf
}).then(res => {
if (res.code === 0) {
this.$message.success(res.msg)
this.userData(obj.zmwyhid)
this.pageData()
}
})
},
doDeleteUser(obj) {
obj.jdhid = this.userFormData.jdhid
$.post(base + '/platform/jdh/zzjg/zmwyh/doDeleteUser', obj).then(res => {
if (res.code === 0) {
this.$message.success(res.msg)
this.userData(obj.zmwyhid)
}
})
},
async openView(row) {
this.viewDialogVisible = true
const {data} = await GET('/platform/jdh/zzjg/zmwyh/userData', {wyhid: row.id})
this.$nextTick(() => {
this.viewData = row
this.viewData.userList = data
})
},
doSearch() {
this.pageForm.pageNumber = 1
this.pageData()
},
pageData() {//加载分页数据
sublime.showLoadingbar();//显示loading
this.tabLoading = true
$.post("/platform/jdh/zzjg/zmwyh/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.unionOptions = await getUnions()
this.pageData()
}
}
</script>
@@ -0,0 +1,280 @@
<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!==3" @click.native="updateSf(row.id,3)"
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!==1" @click.native="updateSf(row.id,1)"
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'
}).then(() => {
$.post(base + '/platform/jdh/zzjg/zxwyh/doDelete', {id: id}).then(res => {
if (res.code === 0) {
this.pageData()
this.$message.success(res.msg)
}
})
}).catch(() => {
})
},
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/zxwyh/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/zxwyh/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/zxwyh/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>