Files
2026-09-08 19:49:21 +08:00

311 lines
13 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
.query-row {
display: flex;
align-items: center;
padding: 10px 0;
}
.query-row:not(:last-child) {
border-bottom: 1px dashed rgb(230, 230, 230);
}
.query-row > .query-title {
width: 100px;
max-width: 100px;
min-width: 100px;
overflow: hidden;
}
.query-row > .query-content {
min-width: 200px;
overflow: hidden;
}
.query-row > .query-content > .el-tag {
margin-bottom: 5px;
margin-top: 5px;
}
@media screen and (max-width: 992px) {
.query-row:nth-child(4) .query-content .el-col:not(:last-child) {
margin-bottom: 5px;
}
.query-title {
display: none;
}
}
.reverseCheckBox {
margin: 0 10px 0 0 !important;
}
</style>
<div id="app" v-cloak>
<guava>
<user-scope ref="userScope"></user-scope>
</guava>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
/* userList: [],
is_H04: "${@shiro.hasRole('H04')}" === 'true',
is_A06: "${@shiro.hasRole('A06')}" === 'true',
is_H10: "${@shiro.hasRole('H10')}" === 'true',
is_H02: "${@shiro.hasRole('club01')}" === 'true',
is_sysadmin: "${@shiro.hasRole('sysadmin')}" === 'true',
clubOptions: [],
settingLoading: false,
setDialogVisible: false,
setGroupType: null,
setGroupId: null,
setGroupName: null,
personTypeOptions: [],
userStateOptions: [],
activityGroupList: [],
activityGroupList2: [],
memberTypeOptions: [{
code: 'unionMember',
name: '工会会员'
}, {
code: 'welfareMember',
name: '福利会员'
}, {
code: 'sickFundMember',
name: '基金会员'
}],
sexTypeOptions: [
{code: '男', name: '男'},
{code: '女', name: '女'}
],
pageForm: {
unionId: "",
unitId: "",
searchName: "u.username",
personTypes: [],
userStates: [],
memberStatus: [],
memberTypes: [],
sexTypes: [],
minAge: 0,
maxAge: 0,
year: moment().format('YYYY'),
module: "",
teacherMeetingId: "",
roleIds: [],
userId: []
},
activityUnions: [],
unions: [],
units: [],
activityUnits: [],
menuOptions: [],
meetingOptions: [],
roleList: [],
tableHeight: '0px',
tableColumns: [
{prop: 'loginName', label: '工号'},
{prop: 'userName', label: '姓名'},
{prop: 'sex', label: '性别'},
{prop: 'birthday', label: '出生年月', sortable: true},
{prop: 'age', label: '年龄', sortable: true},
{prop: 'mobile', label: '联系电话'},
{prop: 'personType', label: '人员类型', sortable: true},
{prop: 'userState', label: '在职状态', sortable: true},
{prop: 'unitName', label: '所属单位', sortable: true},
{prop: 'unionName', label: '所属工会', sortable: true},
{prop: 'activityUnionName', label: '活动工会', sortable: true},
],
rules: {
setGroupType: [{required: true, message: '请选择添加方式', trigger: ['blur', 'change']}],
setGroupId: [{required: true, message: '请选择分组', trigger: ['blur', 'change']}],
setGroupName: [{required: true, message: '请输入分组名称', trigger: ['blur', 'change']}]
},
relatedSessionMenus: ['aca4d14498c145ceb5b24ed70776aae2', '733d7266652740a3aeac9da97ab5eeca', 'fe2d0768e26d4a80beeb159306bb8d01']*/
}
},
components: {
'user-scope': httpVueLoader('/components/plugins/UserScope.vue'),
},
methods: {
/* doReset() {
this.pageForm.userId = []
this.pageForm.memberTypes = []
this.pageForm.sexTypes = []
this.pageForm.personTypes = []
this.pageForm.userStates = []
this.pageForm.unionId = null
this.pageForm.module = null
this.pageForm.teacherMeetingId = null
this.pageForm.roleIds = []
this.pageForm.clubId = null
this.pageForm.activityGroupId = null
this.pageForm.age = [0, 100]
this.pageForm.reverseSelection = false
},
async queryUser(val) {
const {list} = await selectUser(val, 10)
this.userList = list
},
tagClick(key, val) {
let idx = this.pageForm[key].indexOf(val)
if (idx !== -1) {
this.pageForm[key].splice(idx, 1)
} else {
this.pageForm[key].push(val)
}
this.doSearch()
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
this.activityUnits = await getActivityUnits(this.pageForm.activityUnionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
async pageData() {
sublime.showLoadingbar()
const pageForm = clone(this.pageForm)
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
pageForm.userStates = JSON.stringify(pageForm.userStates)
pageForm.memberStatus = JSON.stringify(pageForm.memberStatus)
pageForm.memberTypes = JSON.stringify(pageForm.memberTypes)
pageForm.sexTypes = JSON.stringify(pageForm.sexTypes)
pageForm.roleIds = JSON.stringify(pageForm.roleIds)
pageForm.userId = JSON.stringify(pageForm.userId)
pageForm.age = JSON.stringify(pageForm.age)
const resp = await $.post(loc() + '/pageData', pageForm)
if (resp.code === 0) {
this.tableData = resp.data.list
this.pageForm.totalCount = resp.data.totalCount
}
sublime.closeLoadingbar()
},
async doSetActivityUser() {
const valid = await this.$refs.setForm.validate()
if (!valid) {
return
}
// const {personTypes, userState, unionId, unitId} = this.pageForm
// if (personTypes.length === 0 && userState.length === 0 && unionId === '' && unitId === '') {
// this.$message.warning('请先指定筛选条件!')
// return
// }
if (this.tableData.length === 0) {
this.$message.warning('请先指定筛选条件!')
return
}
const confirm = await this.$confirm('是否将符合搜索条件的用户设为活动人员?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === 'confirm') {
this.settingLoading = true
const pageForm = clone(this.pageForm)
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
pageForm.userStates = JSON.stringify(pageForm.userStates)
pageForm.memberStatus = JSON.stringify(pageForm.memberStatus)
pageForm.memberTypes = JSON.stringify(pageForm.memberTypes)
pageForm.sexTypes = JSON.stringify(pageForm.sexTypes)
pageForm.roleIds = JSON.stringify(pageForm.roleIds)
pageForm.userId = JSON.stringify(pageForm.userId)
pageForm.clubId = pageForm.clubId
Object.assign(pageForm, this.formData)
const resp = await $.post(loc() + '/doSetActivityUser', pageForm)
if (resp.code === 0) {
this.setDialogVisible = false
await this.getActivityGroup()
this.doSearch()
this.notifySuccess(resp.msg)
this.formData = {
setGroupType: null,
setGroupId: null,
setGroupName: null
}
}
this.settingLoading = false
}
},*/
/* async getActivityGroup() {
const resp = await $.get(loc() + '/getActivityUserScopeGroup')
this.activityGroupList = resp.data
resp.data.forEach(v => {
this.activityGroupList2.push({groupId: v.groupId, groupName: v.groupName + "范围之外人员"})
})
},
async getMenuOptions() {
const {data} = await $.get("/platform/sys/role/getMenuOptions")
this.menuOptions = data
},
async getRoleListByMenuId() {
if (['aca4d14498c145ceb5b24ed70776aae2', '733d7266652740a3aeac9da97ab5eeca'].includes(this.pageForm.module)) {
//教代会
let meets = await proposal.getOpenMeeting()
this.meetingOptions = meets.map(v => ({...v, name: v.jdhallname}))
} else if (['fe2d0768e26d4a80beeb159306bb8d01'].includes(this.pageForm.module)) {
//工代会
let meets = await getGdh(true)
this.meetingOptions = meets.map(v => ({...v, name: v.gdhAllName}))
}
this.pageForm.teacherMeetingId = ''
const {data} = await $.post(loc() + "/getRoleListByMenuId", {menuId: this.pageForm.module})
this.roleList = data
},*/
},
mounted() {
setTimeout(() => {
/**
* .el-table::before 下有1px边框 故减1
*/
// this.tableHeight = window.innerHeight - (this.$refs.userTable.$el.getBoundingClientRect().top) - 20 - 50 - 10 - 1 + 'px'
// window.onresize = () => {
// this.tableHeight = window.innerHeight - (this.$refs.userTable.$el.getBoundingClientRect().top) - 20 - 50 - 10 - 1 + 'px'
// }
}, 500)
},
async created() {
/* this.clubOptions = await getClubsByRole()
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('club01')}" === 'false' && "${@shiro.hasRole('H04')}" === 'true') {
this.unions = await getUnionList("${@shiro.getPrincipalProperty('unit').getUnionid()}")
this.$set(this.pageForm, "unionId", this.unions[0].id)
} else {
this.unions = await getUnions(null)
this.activityUnions = await getActivityUnions()
}
if ("${@shiro.hasRole('H04')}" === 'false' && "${@shiro.hasRole('club01')}" === 'true') {
if (this.clubOptions.length > 0) {
this.$set(this.pageForm, "clubId", this.clubOptions[0].stid)
}
}
this.flushUnits()
await this.getActivityGroup()
this.personTypeOptions = await getDictOptions("UserType")
this.userStateOptions = await getDictOptions("UserState")
await this.getMenuOptions()
this.pageData()*/
}
})
</script>
<!--#
}
#-->