|
|
@@ -7,26 +7,35 @@
|
|
|
<div class="flex1 ov-hd d-flex j-ed">
|
|
|
<el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="auto">
|
|
|
<el-form-item label="会议名称" prop="trainingName">
|
|
|
- <el-input v-model="queryParams.trainingName" placeholder="搜会议名称" clearable style="width: 160px" @keyup.enter="handleQuery" />
|
|
|
+ <el-input v-model="queryParams.trainingName" placeholder="搜会议名称" clearable
|
|
|
+ style="width: 160px" @keyup.enter="handleQuery" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="会议方式" prop="joinType">
|
|
|
- <el-select v-model="queryParams.joinType" placeholder="请选择会议方式" clearable style="width: 160px" @change="handleQuery">
|
|
|
- <el-option v-for="item in lm_training_join_type" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ <el-select v-model="queryParams.joinType" placeholder="请选择会议方式" clearable
|
|
|
+ style="width: 160px" @change="handleQuery">
|
|
|
+ <el-option v-for="item in lm_training_join_type" :key="item.value"
|
|
|
+ :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="报名状态" prop="joinStatus">
|
|
|
- <el-select v-model="queryParams.joinStatus" placeholder="请选择会报名状态" clearable style="width: 160px" @change="handleQuery">
|
|
|
- <el-option v-for="item in lm_training_join_status" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ <el-select v-model="queryParams.joinStatus" placeholder="请选择会报名状态" clearable
|
|
|
+ style="width: 160px" @change="handleQuery">
|
|
|
+ <el-option v-for="item in lm_training_join_status" :key="item.value"
|
|
|
+ :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="会议状态" prop="trainingStatus">
|
|
|
- <el-select v-model="queryParams.trainingStatus" placeholder="请选择会议状态" clearable style="width: 160px" @change="handleQuery">
|
|
|
- <el-option v-for="item in lm_training_status" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ <el-select v-model="queryParams.trainingStatus" placeholder="请选择会议状态" clearable
|
|
|
+ style="width: 160px" @change="handleQuery">
|
|
|
+ <el-option v-for="item in lm_training_status" :key="item.value" :label="item.label"
|
|
|
+ :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="是否颁发证书" prop="certFlag">
|
|
|
- <el-select v-model="queryParams.certFlag" placeholder="请选择是否颁发证书" clearable style="width: 160px" @change="handleQuery">
|
|
|
- <el-option v-for="item in yes_no" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ <el-select v-model="queryParams.certFlag" placeholder="请选择是否颁发证书" clearable
|
|
|
+ style="width: 160px" @change="handleQuery">
|
|
|
+ <el-option v-for="item in yes_no" :key="item.value" :label="item.label"
|
|
|
+ :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
@@ -40,20 +49,22 @@
|
|
|
<div class="d-flex flex1 ov-hd flex-cln pd-16">
|
|
|
<div class="d-flex j-sb mb-16">
|
|
|
<div>
|
|
|
- <searchTabs v-model="queryParams.status" @change="handleQuery" :list="tabs" key-label="name" key-count="num" key-value="type"></searchTabs>
|
|
|
+ <searchTabs v-model="queryParams.status" @change="handleQuery" :list="tabs" key-label="name"
|
|
|
+ key-count="num" key-value="type"></searchTabs>
|
|
|
</div>
|
|
|
<el-button type="primary" @click="router.push({ path: 'lmmeetingadd' })">新增会议</el-button>
|
|
|
</div>
|
|
|
<div class="flex1 ov-hd">
|
|
|
<vxe-table :loading="loading" border :data="dataList" min-height="0" max-height="100%">
|
|
|
<vxe-column title="序号" align="center" type="seq" width="50" />
|
|
|
- <vxe-column field="trainingName" title="会议名称" :formatter="colNoData" min-width="150" class-name="f-w-600" />
|
|
|
+ <vxe-column field="trainingName" title="会议名称" :formatter="colNoData" min-width="150"
|
|
|
+ class-name="f-w-600" />
|
|
|
<vxe-column field="trainingTime" min-width="370" title="会议时间" class-name="f-w-600">
|
|
|
<template #default="{ row }">
|
|
|
- <div class="d-flex a-c">
|
|
|
- {{ row.trainingStart.slice(0, -3) }}~{{ row.trainingEnd.slice(0, -3) }}
|
|
|
- <DictTag :options="lm_training_status" :value="row?.trainingStatus" ></DictTag>
|
|
|
- </div>
|
|
|
+ <div class="d-flex a-c">
|
|
|
+ {{ row.trainingStart.slice(0, -3) }}~{{ row.trainingEnd.slice(0, -3) }}
|
|
|
+ <DictTag :options="lm_training_status" :value="row?.trainingStatus"></DictTag>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</vxe-column>
|
|
|
<vxe-column field="signupsTime" min-width="350" title="报名时间" class-name="f-w-600">
|
|
|
@@ -81,50 +92,72 @@
|
|
|
<vxe-column field="certCount" title="领取证书人数" width="80" />
|
|
|
<vxe-column field="certFlag" title="签到二维码" width="90" align="center">
|
|
|
<template #default="{ row }">
|
|
|
- <el-button @click="trainingSignIn(row)" :style="{ color: !['1', '0'].includes(row?.trainingStatus) ? '#999' : '#0079fe' }" text :disabled="!['1', '0'].includes(row?.trainingStatus)">查看</el-button>
|
|
|
+ <el-button @click="trainingSignIn(row)"
|
|
|
+ :style="{ color: !['1', '0'].includes(row?.trainingStatus) ? '#999' : '#0079fe' }"
|
|
|
+ text :disabled="!['1', '0'].includes(row?.trainingStatus)">查看</el-button>
|
|
|
</template>
|
|
|
</vxe-column>
|
|
|
- <vxe-column title="临时报名通道" align="center" field="createByName" width="120" :formatter="colNoData">
|
|
|
+ <vxe-column title="临时报名通道" align="center" field="createByName" width="120"
|
|
|
+ :formatter="colNoData">
|
|
|
<template #default="{ row }">
|
|
|
- <div v-if="row.tempStatus =='0'">
|
|
|
- <el-popconfirm confirm-button-text="确认" cancel-button-text="取消" title="通过临时报名通道报名将不受时间限制,是否确认打开?" :disabled="row.trainingStatus == '2'" @confirm="confirmEvent(row)" @cancel="cancelEvent">
|
|
|
+ <div v-if="row.tempStatus == '0'">
|
|
|
+ <el-popconfirm confirm-button-text="确认" cancel-button-text="取消"
|
|
|
+ title="通过临时报名通道报名将不受时间限制,是否确认打开?" :disabled="row.trainingStatus == '2'"
|
|
|
+ @confirm="confirmEvent(row)" @cancel="cancelEvent">
|
|
|
<template #reference>
|
|
|
- <el-switch :model-value="row.trainingStatus == '2' ? '0' : row.tempStatus" @update:model-value="row.trainingStatus != '2' ? row.tempStatus = $event : null" :loading="loading1" active-value="1" inactive-value="0" :before-change="beforeChange1" :disabled="row.trainingStatus == '2'" />
|
|
|
+ <el-switch :model-value="row.trainingStatus == '2' ? '0' : row.tempStatus"
|
|
|
+ @update:model-value="row.trainingStatus != '2' ? row.tempStatus = $event : null"
|
|
|
+ :loading="loading1" active-value="1" inactive-value="0"
|
|
|
+ :before-change="beforeChange1" :disabled="row.trainingStatus == '2'" />
|
|
|
</template>
|
|
|
</el-popconfirm>
|
|
|
</div>
|
|
|
- <div v-if="row.tempStatus=='1'">
|
|
|
- <el-switch v-if="+row.tempStatus" :model-value="row.trainingStatus == '2' ? '0' : row.tempStatus" @update:model-value="row.trainingStatus != '2' ? row.tempStatus = $event : null" :loading="loading1" :before-change="() => beforeChange2(row)" active-value="1" inactive-value="0" :disabled="row.trainingStatus == '2'" />
|
|
|
+ <div v-if="row.tempStatus == '1'">
|
|
|
+ <el-switch v-if="+row.tempStatus"
|
|
|
+ :model-value="row.trainingStatus == '2' ? '0' : row.tempStatus"
|
|
|
+ @update:model-value="row.trainingStatus != '2' ? row.tempStatus = $event : null"
|
|
|
+ :loading="loading1" :before-change="() => beforeChange2(row)" active-value="1"
|
|
|
+ inactive-value="0" :disabled="row.trainingStatus == '2'" />
|
|
|
</div>
|
|
|
- <el-button v-if="row.tempStatus == '1' && row.trainingStatus !== '2'" type="primary" text @click="temporary(row)" :disabled="row.trainingStatus == '2'">查看</el-button>
|
|
|
+ <el-button v-if="row.tempStatus == '1' && row.trainingStatus !== '2'" type="primary"
|
|
|
+ text @click="temporary(row)" :disabled="row.trainingStatus == '2'">查看</el-button>
|
|
|
</template>
|
|
|
</vxe-column>
|
|
|
- <vxe-column title=" 创建人" align="center" field="createByName" width="70" :formatter="colNoData" />
|
|
|
+ <vxe-column title=" 创建人" align="center" field="createByName" width="70"
|
|
|
+ :formatter="colNoData" />
|
|
|
<vxe-column title="创建时间" align="center" field="createTime" width="160" :formatter="colNoData" />
|
|
|
<vxe-column title="操作" width="240" fixed="right">
|
|
|
<template #default="{ row }">
|
|
|
- <el-button v-if="!+row?.status" type="primary" text @click="trainingOn(row)">上架</el-button>
|
|
|
+ <el-button v-if="!+row?.status" type="primary" text
|
|
|
+ @click="trainingOn(row)">上架</el-button>
|
|
|
<span></span>
|
|
|
- <el-button v-if="+row?.status" type="danger" text @click="trainingOff(row)">下架</el-button>
|
|
|
+ <el-button v-if="+row?.status" type="danger" text
|
|
|
+ @click="trainingOff(row)">下架</el-button>
|
|
|
<span></span>
|
|
|
<el-button v-if="!+row?.status" type="primary" @click="editRow(row)" text>编辑</el-button>
|
|
|
<span></span>
|
|
|
<el-badge :value="row.waitCount" class="item" :offset="[-10, 5]" v-if="+row.waitCount">
|
|
|
- <el-button @click="router.push({ path: 'lmmeetingdetail', query: { id: row?.id } })" style="color: #0079fe;" text>人员管理及详情</el-button>
|
|
|
+ <el-button @click="router.push({ path: 'lmmeetingdetail', query: { id: row?.id } })"
|
|
|
+ style="color: #0079fe;" text>人员管理及详情</el-button>
|
|
|
</el-badge>
|
|
|
- <el-button v-else @click="router.push({ path: 'lmmeetingdetail', query: { id: row?.id } })" style="color: #0079fe;" text>人员管理及详情</el-button>
|
|
|
+ <el-button v-else
|
|
|
+ @click="router.push({ path: 'lmmeetingdetail', query: { id: row?.id } })"
|
|
|
+ style="color: #0079fe;" text>人员管理及详情</el-button>
|
|
|
<span></span>
|
|
|
<el-button text type="danger" @click="deleteRow(row)">删除</el-button>
|
|
|
</template>
|
|
|
</vxe-column>
|
|
|
</vxe-table>
|
|
|
</div>
|
|
|
- <pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
|
+ <pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
|
|
|
+ @pagination="getList" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <SignInCode v-if="showSignIn" v-model:show="showSignIn" :info="rowInfo" :dict="{ lm_training_join_type }"></SignInCode>
|
|
|
- <TemporaryRegistration v-if="showTemporary" v-model:show="showTemporary" :info="temporaryRegistration" :dict="{ lm_training_join_type }"></TemporaryRegistration>
|
|
|
+ <SignInCode v-if="showSignIn" v-model:show="showSignIn" :info="rowInfo" :dict="{ lm_training_join_type }">
|
|
|
+ </SignInCode>
|
|
|
+ <TemporaryRegistration v-if="showTemporary" v-model:show="showTemporary" :info="temporaryRegistration"
|
|
|
+ :dict="{ lm_training_join_type }"></TemporaryRegistration>
|
|
|
</template>
|
|
|
|
|
|
<script setup name="meeting" lang="ts">
|
|
|
@@ -214,10 +247,11 @@ const resetQuery = () => {
|
|
|
};
|
|
|
// 上架会议
|
|
|
const trainingOn = async (row: any) => {
|
|
|
- ElMessageBox.confirm(`确认要上架该会议吗?`, '上架提示', {
|
|
|
- confirmButtonText: '确认',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
+ ElMessageBox.confirm(`上架前请确保会议信息、会议限制及要收集的报名信息正确,避免开始报名后信息错误的情况出现!`, '上架提示', {
|
|
|
+ confirmButtonText: '确认上架',
|
|
|
+ cancelButtonText: '我再看看',
|
|
|
+ type: 'warning',
|
|
|
+ customClass: 'custom-message-box', // 添加自定义类名
|
|
|
}).then(async () => {
|
|
|
const res = await publishTraining(row?.id);
|
|
|
if (res) {
|
|
|
@@ -275,8 +309,8 @@ const trainingSignIn = (row: any) => {
|
|
|
// 打开临时报名二维码
|
|
|
const temporary = (row: any) => {
|
|
|
temporaryRegistration.value = { ...row };
|
|
|
- console.log(temporaryRegistration.value,'temporaryRegistration.value');
|
|
|
-
|
|
|
+ console.log(temporaryRegistration.value, 'temporaryRegistration.value');
|
|
|
+
|
|
|
showTemporary.value = true;
|
|
|
};
|
|
|
onMounted(() => {
|
|
|
@@ -284,3 +318,12 @@ onMounted(() => {
|
|
|
getList();
|
|
|
});
|
|
|
</script>
|
|
|
+<style scoped>
|
|
|
+.custom-message-box .el-message-box__btns {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row-reverse !important;
|
|
|
+ /* 反转按钮顺序 */
|
|
|
+ justify-content: flex-start;
|
|
|
+ /* 左对齐 */
|
|
|
+}
|
|
|
+</style>
|