This commit is contained in:
2025-09-04 09:40:50 +08:00
parent 5441b1d785
commit 53e6c4bc52
35 changed files with 1924 additions and 1266 deletions
@@ -41,7 +41,8 @@ const basicForm = {
</el-col>
<el-col :span="24">
<el-form-item prop="unionQuotaAllocationList" label="工会名额分配">
<el-table :data="formData.unionQuotaAllocationList" size="medium" height="70vh">
<el-table :data="formData.unionQuotaAllocationList" size="medium" max-height="500"
show-summary style="width: 100%">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column label="工会名称" prop="unionName"></el-table-column>
<el-table-column label="会员人数" prop="memberNum"></el-table-column>
@@ -49,14 +49,17 @@ layout("/layouts/platform.html"){
<el-table-column label="报名结束时间" prop="signUpEndTIme"></el-table-column>
<el-table-column label="所属工会" prop="unionName"></el-table-column>
<el-table-column label="分配名额数" prop="allocationNum"></el-table-column>
<el-table-column label="报名数(已审核通过数)">
<!-- <el-table-column label="报名数(已审核通过数)">
<template v-slot="{ row }">
</template>
</el-table-column>
</el-table-column>-->
<el-table-column label="操作" width="230">
<template v-slot="{ row }">
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
<el-button @click="onSignUp(row)" size="mini" type="primary">报名</el-button>
<el-button @click="onSignUp(row)" size="mini" type="primary"
v-if="$moment(row.signUpStartTime).valueOf() < $moment().valueOf()
&&
$moment(row.signUpEndTIme).valueOf() > $moment().valueOf()">报名</el-button>
</template>
</el-table-column>
</el-table>
@@ -94,7 +97,8 @@ layout("/layouts/platform.html"){
methods: {
onSignUp(row){
this.$refs.guava.edit(() => {
this.$refs.signUpFormRef.onOpen(row.activityId, row.unionId)
const activity= this.activityList.find(item => item.id === row.activityId)
this.$refs.signUpFormRef.onOpen(row.activityId, row.unionId,activity)
})
},
onView(row){
@@ -1,11 +1,13 @@
const info = {
template: /*language=HTML*/ `
<div>
<el-tabs v-model="activeName" >
<el-tabs v-model="activeName">
<el-tab-pane label="活动基础信息" name="one">
<el-descriptions :column="2" border class="table_fixed">
<el-descriptions-item label="活动名称">{{ viewData.activityName }}</el-descriptions-item>
<el-descriptions-item label="报名时间">{{ viewData.signUpStartTime }}至{{viewData.signUpEndTIme}}</el-descriptions-item>
<el-descriptions-item label="报名时间">{{ viewData.signUpStartTime
}}至{{viewData.signUpEndTIme}}
</el-descriptions-item>
<el-descriptions-item label="活动线路" :span="2">{{viewData.linNames}}</el-descriptions-item>
<el-descriptions-item label="工会名额分配" :span="2">
<el-table :data="viewData.unionQuotaAllocationList" size="medium" height="70vh">
@@ -24,20 +26,81 @@ const info = {
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="报名信息" name="two">
<el-table :data="userTableData" :size="tableSize" height="70vh">
<el-table-column label="序号" type="index" :index="indexMethod" width="60"></el-table-column>
<el-table-column label="姓名" prop="userName"></el-table-column>
<el-table-column label="工号" prop="loginName"></el-table-column>
<el-table-column label="联系方式" prop="mobile"></el-table-column>
<el-table-column label="身份证号" prop="idCard"></el-table-column>
<el-table-column label="单位" prop="unitName"></el-table-column>
<el-table-column label="报名线路" prop="lineName"></el-table-column>
<el-table-column prop="signUpTime" label="填报时间"></el-table-column>
<el-table-column prop="taskName" label="当前节点"></el-table-column>
<el-table-column prop="instanceState" label="流程状态">
<template v-slot="{row}">
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
size="small"></enum-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="230">
<template v-slot="{ row }">
<el-button @click="openView(row)" size="mini" type="primary">
查看
</el-button>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
<el-dialog
:close-on-click-modal="false"
:append-to-body="true"
:visible.sync="userDialogVisible"
title="详细信息查看"
width="40%"
>
<el-descriptions :column="2" border class="table_fixed">
<el-descriptions-item label="姓名">{{ userViewData.userName }}</el-descriptions-item>
<el-descriptions-item label="工号">{{ userViewData.loginName }}</el-descriptions-item>
<el-descriptions-item label="单位">{{ userViewData.unitName }}</el-descriptions-item>
<el-descriptions-item label="工会">{{ userViewData.unionName }}</el-descriptions-item>
<el-descriptions-item label="附件">
<file-preview :files="userViewData.files" complete_result></file-preview>
</el-descriptions-item>
</el-descriptions>
<span slot="footer" class="dialog-footer">
<el-button @click="userDialogVisible = false" type="primary">关 闭</el-button>
</span>
</el-dialog>
</div>
`,
mixins: [initTableMixins],
data() {
return {
viewData: {},
activeName:"one"
activeName: "one",
userTableData: [],
activityId: "",
unionId: "",
userDialogVisible:false,
userViewData:{}
}
},
methods: {
async onOpen(id,unionId) {
openView(row) {
this.userViewData = row
this.userViewData.files = JSON.parse(row.files)
this.userDialogVisible = true
},
async onOpen(id, unionId) {
this.activityId = id
this.unionId = unionId
await this.findOne(id)
this.listQuotaAllocation()
},
async findOne(id) {
this.$axios.post("/platform/excellentRecuperation/activityList/findOne", {id}).then(resp => {
@@ -46,6 +109,16 @@ const info = {
}
})
},
listQuotaAllocation() {
this.$axios.post("/platform/excellentRecuperation/activitySignUp/listQuotaAllocation", {
activityId: this.activityId,
unionId: this.unionId
}).then(res => {
if (res.code === 0) {
this.userTableData = res.data
}
})
},
},
}
@@ -77,7 +77,7 @@ const SIGN_UP_FORM = {
</el-row>
</el-card>
<div class="process-title">报名人员信息</div>
<div class="process-title">报名人员信息<span style="color:#ee0a24;">(如需修改或提交报名人员信息请点击编辑后提交)</span></div>
<el-table :data="tableData" @sort-change="pageOrder" :size="tableSize" height="70vh">
<el-table-column label="序号" type="index" :index="indexMethod" width="60"></el-table-column>
<el-table-column label="姓名" prop="userName"></el-table-column>
@@ -144,7 +144,8 @@ const SIGN_UP_FORM = {
unionId: "",
lineList: [],
userOptions: [],
userViewData:{},
userViewData: {},
activityData: {},
userDialogVisible: false
}
},
@@ -152,7 +153,7 @@ const SIGN_UP_FORM = {
userChange(val) {
const user = this.userOptions.find(o => o.id === val)
if (user) {
const {userName, loginName, unitId, unitName, unionId, unionName,mobile,idCard} = user
const {userName, loginName, unitId, unitName, unionId, unionName, mobile, idCard} = user
this.$set(this.formData, "userName", userName)
this.$set(this.formData, "loginName", loginName)
this.$set(this.formData, "unitId", unitId)
@@ -168,17 +169,37 @@ const SIGN_UP_FORM = {
}
}
},
async getSIgnUpUserList() {
const res = await this.$axios.post('/platform/excellentRecuperation/activitySignUp/getSIgnUpUserList', {
activityId: this.activityId,
unionId: this.unionId
})
if (res.code === 0) {
return res.data.length
} else {
return 0
}
},
onSave() {
this.$axios.post('/platform/excellentRecuperation/activitySignUp/save', {data: JSON.stringify(this.formData)}).then(res => {
if (res.code === 0) {
this.listQuotaAllocation()
this.$message.success("保存成功")
this.formData = {
lineId: this.lineList[0].id,
activityId: this.activityId
}
this.getSIgnUpUserList().then(data => {
const union = this.activityData.unionQuotaAllocationList.find(v => v.unionId === this.unionId)
if (data >= union.allocationNum) {
this.$message.error("该活动已满")
return
} else {
this.$axios.post('/platform/excellentRecuperation/activitySignUp/save', {data: JSON.stringify(this.formData)}).then(res => {
if (res.code === 0) {
this.listQuotaAllocation()
this.$message.success("保存成功")
this.formData = {
lineId: this.lineList[0].id,
activityId: this.activityId
}
}
})
}
})
},
onSubmit() {
this.$refs.formRef.validate(valid => {
@@ -188,14 +209,22 @@ const SIGN_UP_FORM = {
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$axios.post('/platform/excellentRecuperation/activitySignUp/submit', {data: JSON.stringify(this.formData)}).then(res => {
if (res.code === 0) {
this.listQuotaAllocation()
this.$message.success("提交成功")
this.formData = {
lineId: this.lineList[0].id,
activityId: this.activityId
}
this.getSIgnUpUserList().then(data => {
const union = this.activityData.unionQuotaAllocationList(v => v.unionId === this.unionId)
if (data >= union.allocationNum) {
this.$message.error("该活动已满")
return
} else {
this.$axios.post('/platform/excellentRecuperation/activitySignUp/submit', {data: JSON.stringify(this.formData)}).then(res => {
if (res.code === 0) {
this.listQuotaAllocation()
this.$message.success("提交成功")
this.formData = {
lineId: this.lineList[0].id,
activityId: this.activityId
}
}
})
}
})
})
@@ -294,9 +323,10 @@ const SIGN_UP_FORM = {
}
})
},
onOpen(activityId, unionId) {
onOpen(activityId, unionId, activity) {
this.activityId = activityId
this.unionId = unionId
this.activityData = activity
this.listQuotaAllocation()
this.getLineList(activityId)
},
@@ -11,7 +11,7 @@ layout("/layouts/platform.html"){
<template>
<el-card shadow="never">
<search @search="doSearch">
<search-item label="年度">
<search-item label="年度">
<el-date-picker
v-model="pageForm.year"
type="year"
@@ -24,7 +24,7 @@ layout("/layouts/platform.html"){
</el-date-picker>
</search-item>
<search-item label="活动">
<search-item label="活动">
<el-select clearable filterable style="width: 100%"
v-model="pageForm.activityId"
placeholder="请选择活动">