This commit is contained in:
2025-10-10 14:32:52 +08:00
parent 761ade5916
commit d1bc1dec50
15 changed files with 205 additions and 153 deletions
@@ -7,17 +7,8 @@ layout("/layouts/platform.html"){
<template>
<el-card shadow="never">
<search @search="doSearch">
<search-item label="关键字">
<el-input v-model="pageForm.searchKeyword" placeholder="请填写内容">
<el-select
slot="prepend"
v-model="pageForm.searchName"
placeholder="查询"
style="width: 100px;"
>
<el-option label="工号" value="t1.loginName"></el-option>
<el-option label="姓名" value="t1.userName"></el-option>
</el-select>
<search-item label="姓名/工号">
<el-input v-model="pageForm.searchKeyword" placeholder="请填写姓名/工号" clearable>
</el-input>
</search-item>
<search-item label="教代会">
@@ -26,7 +17,7 @@ layout("/layouts/platform.html"){
filterable
placeholder="请选择教代会"
style="width:100%;"
@change="doSearch"
@change="getAllDelegation(pageForm.teacherMeetId);doSearch()"
>
<el-option
v-for="item in teacherMeets"
@@ -36,8 +27,15 @@ layout("/layouts/platform.html"){
></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
<el-select clearable filterable placeholder="所属工会" style="width: 100%"
<search-item label="代表团" v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN'])">
<el-select clearable filterable placeholder="代表团" style="width: 100%"
v-model="pageForm.delegationId">
<el-option :key="item.id" :label="item.name" :value="item.id"
v-for="item in delegations"></el-option>
</el-select>
</search-item>
<search-item label="分工会">
<el-select clearable filterable placeholder="分工会" style="width: 100%"
v-model="pageForm.unionId">
<el-option :key="item.id" :label="item.name" :value="item.id"
v-for="item in unionOptions"></el-option>
@@ -67,13 +65,14 @@ layout("/layouts/platform.html"){
fixed
type="index"
width="50"></el-table-column>
<el-table-column align="center" label="工号" prop="loginName"></el-table-column>
<el-table-column align="center" label="姓名" prop="userName"></el-table-column>
<el-table-column align="center" label="年龄" prop="age"></el-table-column>
<el-table-column align="center" label="性别" prop="sex"></el-table-column>
<el-table-column align="center" label="所属单位" prop="unitName"></el-table-column>
<el-table-column align="center" label="所属工会" prop="unionName"></el-table-column>
<el-table-column align="center" label="操作" width="100" fixed="right">
<el-table-column label="工号" prop="loginName"></el-table-column>
<el-table-column label="姓名" prop="userName"></el-table-column>
<el-table-column label="年龄" prop="age"></el-table-column>
<el-table-column label="性别" prop="sex"></el-table-column>
<el-table-column label="所属单位" prop="unitName"></el-table-column>
<el-table-column label="所属工会" prop="unionName"></el-table-column>
<el-table-column label="代表团" prop="delegationName"></el-table-column>
<el-table-column label="操作" width="100" fixed="right">
<template scope="{row}">
<el-button
size="mini"
@@ -101,7 +100,6 @@ layout("/layouts/platform.html"){
return {
pageDataUrl: "/platform/executiveCommittee/delegationOnePush/pageData",
pageForm: {
searchName: 't1.userName',
teacherMeetId: null,
unionId: null
},
@@ -4,10 +4,11 @@ const DELEGATION_ONE_PUSH_FORMAL_DIALOG = {
<el-dialog
:close-on-click-modal="false"
:visible.sync="dialogVisible"
title="执委会委员推选"
title="团长推选委员"
width="70%"
>
<el-transfer
ref="transfer"
v-model="userValue"
@@ -22,21 +23,26 @@ const DELEGATION_ONE_PUSH_FORMAL_DIALOG = {
>
<div slot-scope="{ option }">
<div class="transfer-item">
<div class="transfer-item-name">{{ option.userName }} - {{ option.loginName }}</div>
<div class="transfer-item-name">{{ option.userName }} - {{ option.loginName
}} - {{option.unitName}}
</div>
<div class="transfer-item-details">
<span class="detail-item">
{{option.sex}}
</span>
<span class="detail-item">
{{option.sex}}
</span>
<span class="detail-item">{{ option.age }}岁</span>
<span class="detail-item">{{ option.jobTitle }}</span>
<span class="detail-item">{{ option.professionalTitle }}</span>
</div>
</div>
</div>
</el-transfer>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="onConfirm">确 定</el-button>
</span>
<span slot="footer">
<span style="color:red;font-size: 15px; display:flex;text-align: right;">推选名额:{{quotaCount}}个</span>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="onConfirm">确 定</el-button>
</span>
</span>
</el-dialog>
</div>
`,
@@ -47,7 +53,8 @@ const DELEGATION_ONE_PUSH_FORMAL_DIALOG = {
userData: [],
rightChecked: [],
attendanceRightChecked: [],
teacherMeetId: null
teacherMeetId: null,
quotaCount: 0
}
},
methods: {
@@ -65,8 +72,9 @@ const DELEGATION_ONE_PUSH_FORMAL_DIALOG = {
data.userData.forEach(v => {
this.userData.push({userId: v.userId, ...v})
})
this.quotaCount = data.quotaCount
this.dialogVisible = true
}else{
} else {
this.$message.error(msg)
}
},
@@ -85,12 +93,12 @@ const DELEGATION_ONE_PUSH_FORMAL_DIALOG = {
this.dialogVisible = false
this.$message.success(msg)
this.$emit('refresh')
}else{
} else {
this.$message.error(msg)
}
}
},
style: /*language=CSS*/ `
`
}
@@ -7,17 +7,8 @@ layout("/layouts/platform.html"){
<template>
<el-card shadow="never">
<search @search="doSearch">
<search-item label="关键字">
<el-input v-model="pageForm.searchKeyword" placeholder="请填写内容">
<el-select
slot="prepend"
v-model="pageForm.searchName"
placeholder="查询"
style="width: 100px;"
>
<el-option label="工号" value="t2.loginName"></el-option>
<el-option label="姓名" value="t2.userName"></el-option>
</el-select>
<search-item label="姓名/工号">
<el-input v-model="pageForm.searchKeyword" placeholder="请填写姓名/工号" clearable>
</el-input>
</search-item>
<search-item label="教代会">
@@ -36,8 +27,8 @@ layout("/layouts/platform.html"){
></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
<el-select clearable filterable placeholder="所属工会" style="width: 100%"
<search-item label="工会">
<el-select clearable filterable placeholder="工会" style="width: 100%"
v-model="pageForm.unionId">
<el-option :key="item.id" :label="item.name" :value="item.id"
v-for="item in unionOptions"></el-option>
@@ -101,7 +92,6 @@ layout("/layouts/platform.html"){
return {
pageDataUrl: "/platform/executiveCommittee/delegationTwoPush/pageData",
pageForm: {
searchName: 't2.userName',
teacherMeetId: null,
unionId: null
},
@@ -22,21 +22,26 @@ const DELEGATION_TWO_PUSH_FORMAL_DIALOG = {
>
<div slot-scope="{ option }">
<div class="transfer-item">
<div class="transfer-item-name">{{ option.userName }} - {{ option.loginName }}</div>
<div class="transfer-item-name">{{ option.userName }} - {{ option.loginName }} -
{{option.unitName}}
</div>
<div class="transfer-item-details">
<span class="detail-item">
{{option.sex}}
</span>
<span class="detail-item">{{ option.age }}岁</span>
<span class="detail-item">{{ option.jobTitle }}</span>
<span class="detail-item">{{ option.professionalTitle }}</span>
</div>
</div>
</div>
</el-transfer>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="onConfirm">确 定</el-button>
</span>
<span slot="footer">
<span style="color:red;font-size: 15px; display:flex;text-align: right;">推选名额:{{delegationQuotaCount}}个</span>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="onConfirm">确 定</el-button>
</span>
</span>
</el-dialog>
</div>
`,
@@ -47,7 +52,8 @@ const DELEGATION_TWO_PUSH_FORMAL_DIALOG = {
userData: [],
rightChecked: [],
attendanceRightChecked: [],
teacherMeetId: null
teacherMeetId: null,
delegationQuotaCount: 0
}
},
methods: {
@@ -64,8 +70,9 @@ const DELEGATION_TWO_PUSH_FORMAL_DIALOG = {
data.userData.forEach(v => {
this.userData.push({userId: v.userId, ...v})
})
this.delegationQuotaCount = data.delegationQuotaCount
this.dialogVisible = true
}else{
} else {
this.$message.error(msg)
}
},
@@ -84,7 +91,7 @@ const DELEGATION_TWO_PUSH_FORMAL_DIALOG = {
this.dialogVisible = false
this.$message.success(msg)
this.$emit('refresh')
}else{
} else {
this.$message.error(msg)
}
}
@@ -114,7 +114,7 @@ layout("/layouts/platform.html"){
},
tableColumns: [
{prop: 'delegationName', label: '代表团名称', sortable: true},
{prop: 'memberCount', label: '会员人数', sortable: true},
{prop: 'dbCount', label: '代表人数', sortable: true},
{prop: 'quotaCount', label: '分配人数', sortable: true}
],
formData: {},
@@ -7,17 +7,8 @@ layout("/layouts/platform.html"){
<template>
<el-card shadow="never">
<search @search="doSearch">
<search-item label="关键字">
<el-input v-model="pageForm.searchKeyword" placeholder="请填写内容">
<el-select
slot="prepend"
v-model="pageForm.searchName"
placeholder="查询"
style="width: 100px;"
>
<el-option label="工号" value="t1.loginName"></el-option>
<el-option label="姓名" value="t1.userName"></el-option>
</el-select>
<search-item label="姓名/工号">
<el-input v-model="pageForm.searchKeyword" placeholder="请填写姓名/工号" clearable>
</el-input>
</search-item>
<search-item label="教代会">
@@ -36,8 +27,8 @@ layout("/layouts/platform.html"){
></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
<el-select clearable filterable placeholder="所属工会" style="width: 100%"
<search-item label="工会">
<el-select clearable filterable placeholder="工会" style="width: 100%"
v-model="pageForm.unionId">
<el-option :key="item.id" :label="item.name" :value="item.id"
v-for="item in unionOptions"></el-option>
@@ -109,7 +100,6 @@ layout("/layouts/platform.html"){
return {
pageDataUrl: "/platform/executiveCommittee/preparatoryGroupPush/pageData",
pageForm: {
searchName: 't1.userName',
teacherMeetId: null,
unionId: null
},
@@ -4,7 +4,7 @@ const PUSH_FORMAL_DIALOG = {
<el-dialog
:close-on-click-modal="false"
:visible.sync="dialogVisible"
title="执委会委员推选"
title="筹备组推选"
width="70%"
>
@@ -22,21 +22,26 @@ const PUSH_FORMAL_DIALOG = {
>
<div slot-scope="{ option }">
<div class="transfer-item">
<div class="transfer-item-name">{{ option.userName }} - {{ option.loginName }}</div>
<div class="transfer-item-name">{{ option.userName }} - {{ option.loginName }} -
{{option.unitName}}
</div>
<div class="transfer-item-details">
<span class="detail-item">
{{option.sex}}
</span>
<span class="detail-item">{{ option.age }}岁</span>
<span class="detail-item">{{ option.jobTitle }}</span>
<span class="detail-item">{{ option.professionalTitle }}</span>
</div>
</div>
</div>
</el-transfer>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="onConfirm">确 定</el-button>
</span>
<span slot="footer">
<span style="color:red;font-size: 15px; display:flex;text-align: right;">推选名额:{{prepareGroupQuotaCount}}个</span>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="onConfirm">确 定</el-button>
</span>
</span>
</el-dialog>
</div>
`,
@@ -47,7 +52,8 @@ const PUSH_FORMAL_DIALOG = {
userData: [],
rightChecked: [],
attendanceRightChecked: [],
teacherMeetId: null
teacherMeetId: null,
prepareGroupQuotaCount: 0
}
},
methods: {
@@ -64,6 +70,7 @@ const PUSH_FORMAL_DIALOG = {
data.userData.forEach(v => {
this.userData.push({userId: v.userId, ...v})
})
this.prepareGroupQuotaCount = data.prepareGroupQuotaCount
}
},
filterMethod(query, item) {
@@ -13,11 +13,11 @@ layout("/layouts/platform.html"){
:key="item.id"></el-option>
</el-select>
</search-item>
<!-- <search-item label="分工会">
<el-select v-model="pageForm.unionId" filterable @change="listUnit" clearable style="width: 100%">
<el-option v-for="i in unionOptions" :label="i.name" :key="i.id" :value="i.id"></el-option>
</el-select>
</search-item>-->
<search-item label="分工会" v-if="$auth.hasRole('SYSADMIN') || $auth.hasRole('SCHOOL_UNION_ADMIN')">
<el-select v-model="pageForm.unionId" filterable @change="listUnit" clearable style="width: 100%">
<el-option v-for="i in unionOptions" :label="i.name" :key="i.id" :value="i.id"></el-option>
</el-select>
</search-item>
</search>
</el-card>
@@ -41,7 +41,7 @@ layout("/layouts/platform.html"){
@click="$refs.pushAttendanceRef.onOpen(pageForm.sessionId,pageForm.unionId)"
>列席代表预选
</el-button>
<!-- <el-button icon="el-icon-download" size="small" type="primary" @click="doExport">导出</el-button>-->
<!-- <el-button icon="el-icon-download" size="small" type="primary" @click="doExport">导出</el-button>-->
<el-button icon="el-icon-check" size="small" type="primary" @click="onBatchSubmit">正式代表提交上报
</el-button>
@@ -60,33 +60,33 @@ layout("/layouts/platform.html"){
row-key="id"
@sort-change="pageOrder"
>
<!-- <el-table-column type="selection" width="55" reserve-selection fixed="left" :selectable="(row)=>{return row.taskKey==='0cacd1e7-7bb2-47dd-818b-6a73062e0c62'}"></el-table-column>-->
<!-- <el-table-column type="selection" width="55" reserve-selection fixed="left" :selectable="(row)=>{return row.taskKey==='0cacd1e7-7bb2-47dd-818b-6a73062e0c62'}"></el-table-column>-->
<el-table-column type="index" width="55" label="序号" :index="indexMethod" fixed="left"></el-table-column>
<el-table-column label="姓名" prop="userName" width="100" fixed="left"></el-table-column>
<el-table-column label="年龄" prop="age" width="100"></el-table-column>
<el-table-column label="性别" prop="sex" width="100" fixed="left"></el-table-column>
<!-- <el-table-column label="民族" prop="nation" min-width="100"></el-table-column>-->
<el-table-column label="年龄" prop="age" width="80"></el-table-column>
<el-table-column label="性别" prop="sex" width="80" fixed="left"></el-table-column>
<!-- <el-table-column label="民族" prop="nation" min-width="100"></el-table-column>-->
<el-table-column label="职称" prop="professionalTitle" min-width="150"></el-table-column>
<el-table-column label="职级" prop="professionalLevel" min-width="100"></el-table-column>
<!-- :style="{'pointer-events':(row.taskKey === 'startTask' || row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080' || !row.instanceId)?'auto':'none'}"-->
<!-- <el-table-column label="校级领导" prop="schoolLeader" min-width="100">
<template v-slot="{row}">
<el-checkbox
v-if="row"
v-model="row.schoolLeader"
style="pointer-events:none"
></el-checkbox>
</template>
</el-table-column>
<el-table-column label="中层领导" prop="middleLevelLeader" min-width="100">
<template v-slot="{row}">
<el-checkbox
v-if="row"
v-model="row.middleLevelLeader"
style="pointer-events:none"
></el-checkbox>
</template>
</el-table-column>-->
<!-- :style="{'pointer-events':(row.taskKey === 'startTask' || row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080' || !row.instanceId)?'auto':'none'}"-->
<!-- <el-table-column label="校级领导" prop="schoolLeader" min-width="100">
<template v-slot="{row}">
<el-checkbox
v-if="row"
v-model="row.schoolLeader"
style="pointer-events:none"
></el-checkbox>
</template>
</el-table-column>
<el-table-column label="中层领导" prop="middleLevelLeader" min-width="100">
<template v-slot="{row}">
<el-checkbox
v-if="row"
v-model="row.middleLevelLeader"
style="pointer-events:none"
></el-checkbox>
</template>
</el-table-column>-->
<!--
<el-table-column label="专任教师" prop="ordinaryTeacher" min-width="100">
<template v-slot="{row}">
@@ -97,7 +97,7 @@ layout("/layouts/platform.html"){
></el-checkbox>
</template>
</el-table-column>-->
<el-table-column label="高级职称" prop="seniorTeacher" min-width="120">
<el-table-column label="高级职称" prop="seniorTeacher" width="80">
<template v-slot="{row}">
<el-checkbox
v-if="row"
@@ -106,7 +106,7 @@ layout("/layouts/platform.html"){
></el-checkbox>
</template>
</el-table-column>
<el-table-column label="中级职称及以下" prop="intermediateBelow" min-width="120">
<el-table-column label="中级职称及以下" prop="intermediateBelow" width="120">
<template v-slot="{row}">
<el-checkbox
v-if="row"
@@ -115,7 +115,7 @@ layout("/layouts/platform.html"){
></el-checkbox>
</template>
</el-table-column>
<el-table-column label="干部" prop="cadre" min-width="100">
<el-table-column label="干部" prop="cadre" width="80">
<template v-slot="{row}">
<el-checkbox
v-if="row"
@@ -124,7 +124,7 @@ layout("/layouts/platform.html"){
></el-checkbox>
</template>
</el-table-column>
<el-table-column label="工人" prop="worker" min-width="100">
<el-table-column label="工人" prop="worker" width="80">
<template v-slot="{row}">
<el-checkbox
v-if="row"
@@ -151,26 +151,32 @@ layout("/layouts/platform.html"){
></el-checkbox>
</template>
</el-table-column>
<el-table-column label="代表类型" prop="representativeType" show-overflow-tooltip width="100"></el-table-column>
<el-table-column prop="taskName" label="当前节点" width="120"></el-table-column>
<el-table-column prop="instanceState" label="流程状态">
<el-table-column label="代表类型" prop="representativeType" show-overflow-tooltip
width="100"></el-table-column>
<el-table-column prop="taskName" label="当前节点" width="120"fixed="right"></el-table-column>
<el-table-column prop="instanceState" label="流程状态"fixed="right">
<template slot-scope="{row}">
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
size="small"></enum-tag>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="300px">
<el-table-column label="操作" fixed="right" width="300">
<template slot-scope="{row}">
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
<el-button v-if="row.taskKey === 'startTask' || row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080' || !row.instanceId" @click="onEdit(row)" size="mini"
type="primary">编辑
<el-button
v-if="row.taskKey === 'startTask' || row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080' || !row.instanceId"
@click="onEdit(row)" size="mini"
type="primary">编辑
</el-button>
<template >
<el-button v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')" @click="onDelete(row.id)" size="mini" type="danger">
<template>
<el-button v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')" @click="onDelete(row.id)"
size="mini" type="danger">
删除
</el-button>
<el-button v-else-if="row.taskKey === 'startTask' || row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080' || !row.instanceId" @click="onDelete(row.id)"
size="mini" type="danger">删除
<el-button
v-else-if="row.taskKey === 'startTask' || row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080' || !row.instanceId"
@click="onDelete(row.id)"
size="mini" type="danger">删除
</el-button>
</template>
@@ -205,7 +211,6 @@ layout("/layouts/platform.html"){
<!--#include('push-formal-dialog.js'){}#-->
<!--#include('push-attendance-dialog.js'){}#-->
<!--#include('write.js'){}#-->
new Vue({
el: '#app',
mixins: [initTableMixins],
@@ -43,7 +43,7 @@ layout("/layouts/platform.html"){
<el-table-column type="index" width="50" :index="indexMethod" label="序号"></el-table-column>
<el-table-column prop="unionName" label="工会名称"></el-table-column>
<el-table-column prop="memberCount" label="会员人数"></el-table-column>
<el-table-column prop="dbCount" label="代表人数"></el-table-column>
<!-- <el-table-column prop="dbCount" label="代表人数"></el-table-column>-->
<el-table-column prop="allocationNum" label="名额分配人数"></el-table-column>
<el-table-column prop="seniorTeaNum" label="高级职称代表数"></el-table-column>
<el-table-column prop="intermediateBelowNum" label="中级职称及以下代表数"></el-table-column>