|
@@ -1,49 +1,58 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div class="pd-16">
|
|
<div class="pd-16">
|
|
|
<div class="d-flex mb-16 flex-cln">
|
|
<div class="d-flex mb-16 flex-cln">
|
|
|
- <div class="info-title">
|
|
|
|
|
- 报名限制条件
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="bg-#fafafa pd-20" v-if="form?.conditions?.totalCheck == '0' || !form?.conditions?.totalCheck">无
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="info-title">报名限制条件</div>
|
|
|
|
|
+ <div class="bg-#fafafa pd-20" v-if="form?.conditions?.totalCheck == '0' || !form?.conditions?.totalCheck">无</div>
|
|
|
<div class="bg-#fafafa pd-20 d-flex flex-cln" v-else>
|
|
<div class="bg-#fafafa pd-20 d-flex flex-cln" v-else>
|
|
|
<div class="pd-5">总参会人数 ≤ {{ form?.conditions?.total }}</div>
|
|
<div class="pd-5">总参会人数 ≤ {{ form?.conditions?.total }}</div>
|
|
|
<div class="d-flex">
|
|
<div class="d-flex">
|
|
|
<div>
|
|
<div>
|
|
|
<template v-for="(item, index) in form?.conditions?.levelCheck" :key="index">
|
|
<template v-for="(item, index) in form?.conditions?.levelCheck" :key="index">
|
|
|
<div class="d-flex a-c pd-5">
|
|
<div class="d-flex a-c pd-5">
|
|
|
- <span v-if="+item.check">所有<span class="f-w-6">{{ selectDictLabels(vip_level,
|
|
|
|
|
|
|
+ <span v-if="+item.check">
|
|
|
|
|
+ 所有
|
|
|
|
|
+ <span class="f-w-6">
|
|
|
|
|
+ {{ selectDictLabels(vip_level,
|
|
|
item.vipLevel,
|
|
item.vipLevel,
|
|
|
- ',') }}</span>参会人数 ≤ {{ item.total
|
|
|
|
|
- }}</span>
|
|
|
|
|
|
|
+ ',') }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ 参会人数 ≤
|
|
|
|
|
+ {{ item.total
|
|
|
|
|
+ }}
|
|
|
|
|
+ </span>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
</div>
|
|
</div>
|
|
|
- <div> <template v-for="(item, index) in form?.conditions?.cpyCheck" :key="index">
|
|
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <template v-for="(item, index) in form?.conditions?.cpyCheck" :key="index">
|
|
|
<div class="d-flex a-c pd-5">
|
|
<div class="d-flex a-c pd-5">
|
|
|
- <span v-if="+item.check"><span class="f-w-6">{{ selectDictLabels(vip_level,
|
|
|
|
|
|
|
+ <span v-if="+item.check">
|
|
|
|
|
+ <span class="f-w-6">
|
|
|
|
|
+ {{ selectDictLabels(vip_level,
|
|
|
item.vipLevel,
|
|
item.vipLevel,
|
|
|
- ',') }}</span>限制每家单位人数≤{{ item.total
|
|
|
|
|
- }}</span>
|
|
|
|
|
|
|
+ ',') }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ 限制每家单位人数≤{{ item.total
|
|
|
|
|
+ }}
|
|
|
|
|
+ </span>
|
|
|
</div>
|
|
</div>
|
|
|
- </template></div>
|
|
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="d-flex mb-16 ">
|
|
<div class="d-flex mb-16 ">
|
|
|
<div class="info-title">
|
|
<div class="info-title">
|
|
|
<span>参会人员信息</span>
|
|
<span>参会人员信息</span>
|
|
|
- <span class="f-s-14 c-666">(提交报名:{{ form?.submitCount || 0 }}人 | 审核通过:{{ form?.joinCount || 0 }}人 |
|
|
|
|
|
- 签到:{{
|
|
|
|
|
- form?.signCount || 0 }}人 | 领取证书:{{ form?.certCount || 0 }}人)</span>
|
|
|
|
|
|
|
+ <span class="f-s-14 c-666">
|
|
|
|
|
+ (提交报名:{{ form?.submitCount || 0 }}人 | 审核通过:{{ form?.joinCount || 0 }}人 | 签到:{{
|
|
|
|
|
+ form?.signCount || 0
|
|
|
|
|
+ }}人 | 领取证书:{{ form?.certCount || 0 }}人)
|
|
|
|
|
+ </span>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- <div class="d-flex a-c j-sb">
|
|
|
|
|
- <searchTabs v-if="form?.conditions?.totalCheck == '1'" v-model="queryParams.res" @change="handleQuery"
|
|
|
|
|
- :list="tabs" key-label="name" key-count="num" key-value="type"></searchTabs>
|
|
|
|
|
|
|
+ <div class="d-flex j-sb">
|
|
|
|
|
+ <div><searchTabs v-if="form?.conditions?.totalCheck == '1'" v-model="queryParams.res" @change="handleQuery" :list="tabs" key-label="name" key-count="num" key-value="type"></searchTabs></div>
|
|
|
<span style="width: 1px;"></span>
|
|
<span style="width: 1px;"></span>
|
|
|
<el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="auto">
|
|
<el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="auto">
|
|
|
<el-form-item label="姓名:" prop="name">
|
|
<el-form-item label="姓名:" prop="name">
|
|
@@ -54,8 +63,7 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="参会状态:" prop="signupStatus">
|
|
<el-form-item label="参会状态:" prop="signupStatus">
|
|
|
<el-select v-model="queryParams.signupStatus" placeholder="请选择参会状态" clearable style="width: 180px">
|
|
<el-select v-model="queryParams.signupStatus" placeholder="请选择参会状态" clearable style="width: 180px">
|
|
|
- <el-option v-for="item in dm_training_signup_status_list" :key="item.value" :label="item.label"
|
|
|
|
|
- :value="item.value" />
|
|
|
|
|
|
|
+ <el-option v-for="item in dm_training_signup_status_list" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
@@ -72,10 +80,8 @@
|
|
|
<vxe-column title="盟员等级" field="vipLevel" min-width="100" :formatter="colNoData" align="center">
|
|
<vxe-column title="盟员等级" field="vipLevel" min-width="100" :formatter="colNoData" align="center">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<div class="d-flex a-c j-c">
|
|
<div class="d-flex a-c j-c">
|
|
|
- <DictTag :options="vip_level" :value="row?.signupStatusForPc">
|
|
|
|
|
-</DictTag>
|
|
|
|
|
|
|
+ <DictTag :options="vip_level" :value="row?.signupStatusForPc"></DictTag>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
</template>
|
|
</template>
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
<vxe-column title="姓名" field="name" min-width="100" :formatter="colNoData" />
|
|
<vxe-column title="姓名" field="name" min-width="100" :formatter="colNoData" />
|
|
@@ -85,31 +91,27 @@
|
|
|
<vxe-column title="报名时间" align="center" field="createTime" min-width="100" :formatter="colNoData" />
|
|
<vxe-column title="报名时间" align="center" field="createTime" min-width="100" :formatter="colNoData" />
|
|
|
<vxe-column title="报名信息" min-width="100" fixed="right">
|
|
<vxe-column title="报名信息" min-width="100" fixed="right">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
- <div class="c-s-p"> <u @click="checkRegostrationInfo(row)">查看报名信息</u></div>
|
|
|
|
|
|
|
+ <div class="c-s-p"><u @click="checkRegostrationInfo(row)">查看报名信息</u></div>
|
|
|
</template>
|
|
</template>
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
<vxe-column title="参会状态" min-width="100" fixed="right">
|
|
<vxe-column title="参会状态" min-width="100" fixed="right">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
- <DictTag :options="dm_training_signup_status_list" :value="row?.signupStatusForPc">
|
|
|
|
|
- </DictTag>
|
|
|
|
|
|
|
+ <DictTag :options="dm_training_signup_status_list" :value="row?.signupStatusForPc"></DictTag>
|
|
|
</template>
|
|
</template>
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
<vxe-column v-if="form?.conditions?.totalCheck == '1'" title="审核状态" min-width="100" fixed="right">
|
|
<vxe-column v-if="form?.conditions?.totalCheck == '1'" title="审核状态" min-width="100" fixed="right">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
- <DictTag :options="cpy_res_status" :value="row?.res">
|
|
|
|
|
- </DictTag>
|
|
|
|
|
|
|
+ <DictTag :options="cpy_res_status" :value="row?.res"></DictTag>
|
|
|
</template>
|
|
</template>
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
<vxe-column v-if="form?.conditions?.totalCheck == '1'" title="操作" width="250" align="center" fixed="right">
|
|
<vxe-column v-if="form?.conditions?.totalCheck == '1'" title="操作" width="250" align="center" fixed="right">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
- <el-button type="danger" size="small" v-if="row?.res !== '0'"
|
|
|
|
|
- @click="openDialog(row)">重审</el-button>
|
|
|
|
|
|
|
+ <el-button type="danger" size="small" v-if="row?.res !== '0'" @click="openDialog(row)">重审</el-button>
|
|
|
<el-button size="small" type="danger" @click="openDialog(row)" v-else>审核</el-button>
|
|
<el-button size="small" type="danger" @click="openDialog(row)" v-else>审核</el-button>
|
|
|
</template>
|
|
</template>
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
</vxe-table>
|
|
</vxe-table>
|
|
|
- <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
|
|
|
|
- v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
|
|
|
|
|
+ <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
|
</div>
|
|
</div>
|
|
|
<el-dialog v-model="dialogVisible" title="审核信息" width="500" center>
|
|
<el-dialog v-model="dialogVisible" title="审核信息" width="500" center>
|
|
|
<span class="f-s-16 mb-15">请填写审核原因:</span>
|
|
<span class="f-s-16 mb-15">请填写审核原因:</span>
|
|
@@ -117,21 +119,18 @@
|
|
|
<template #footer>
|
|
<template #footer>
|
|
|
<div class="dialog-footer">
|
|
<div class="dialog-footer">
|
|
|
<el-button type="primary" @click="signupApprovals('1')">通过</el-button>
|
|
<el-button type="primary" @click="signupApprovals('1')">通过</el-button>
|
|
|
- <el-button type="danger" @click="signupApprovals('2')">
|
|
|
|
|
- 不通过
|
|
|
|
|
- </el-button>
|
|
|
|
|
|
|
+ <el-button type="danger" @click="signupApprovals('2')">不通过</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- <registrationInfo v-if="showTemporary" v-model:show="showTemporary" :info="temporaryRegistration">
|
|
|
|
|
- </registrationInfo>
|
|
|
|
|
|
|
+ <registrationInfo v-if="showTemporary" v-model:show="showTemporary" :info="temporaryRegistration"></registrationInfo>
|
|
|
</template>
|
|
</template>
|
|
|
<script setup name="MeetingDetailInfo" lang="ts">
|
|
<script setup name="MeetingDetailInfo" lang="ts">
|
|
|
import { ref, onMounted } from 'vue';
|
|
import { ref, onMounted } from 'vue';
|
|
|
import { signupCount, trainingMembers, signupApproval, exportTrainingMembers } from '@/api/training';
|
|
import { signupCount, trainingMembers, signupApproval, exportTrainingMembers } from '@/api/training';
|
|
|
import { searchTabs } from '@/views/models';
|
|
import { searchTabs } from '@/views/models';
|
|
|
import { colNoData } from '@/utils/noData';
|
|
import { colNoData } from '@/utils/noData';
|
|
|
-import registrationInfo from './registration-info.vue'
|
|
|
|
|
|
|
+import registrationInfo from './registration-info.vue';
|
|
|
import { debounce } from 'lodash';
|
|
import { debounce } from 'lodash';
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
const { cpy_res_status, dm_training_signup_status_list, vip_level } = toRefs<any>(proxy?.useDict('cpy_res_status', 'dm_training_signup_status_list', 'vip_level'));
|
|
const { cpy_res_status, dm_training_signup_status_list, vip_level } = toRefs<any>(proxy?.useDict('cpy_res_status', 'dm_training_signup_status_list', 'vip_level'));
|
|
@@ -140,19 +139,19 @@ const props = defineProps({
|
|
|
form: {
|
|
form: {
|
|
|
type: Object,
|
|
type: Object,
|
|
|
default: () => ({})
|
|
default: () => ({})
|
|
|
- },
|
|
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
-const showTemporary = ref(false)
|
|
|
|
|
-const dialogVisible = ref(false)
|
|
|
|
|
-const dialoginput = ref()
|
|
|
|
|
-const currentRow = ref()
|
|
|
|
|
-const temporaryRegistration = ref()
|
|
|
|
|
|
|
+const showTemporary = ref(false);
|
|
|
|
|
+const dialogVisible = ref(false);
|
|
|
|
|
+const dialoginput = ref();
|
|
|
|
|
+const currentRow = ref();
|
|
|
|
|
+const temporaryRegistration = ref();
|
|
|
const checkRegostrationInfo = (row) => {
|
|
const checkRegostrationInfo = (row) => {
|
|
|
- temporaryRegistration.value = row
|
|
|
|
|
- showTemporary.value = true
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ temporaryRegistration.value = row;
|
|
|
|
|
+ showTemporary.value = true;
|
|
|
|
|
+};
|
|
|
const openDialog = (row) => {
|
|
const openDialog = (row) => {
|
|
|
- currentRow.value = row; // 保存当前行数据
|
|
|
|
|
|
|
+ currentRow.value = row; // 保存当前行数据
|
|
|
dialogVisible.value = true;
|
|
dialogVisible.value = true;
|
|
|
};
|
|
};
|
|
|
const query = useRoute().query;
|
|
const query = useRoute().query;
|
|
@@ -180,15 +179,15 @@ const getList = async () => {
|
|
|
total.value = res.total;
|
|
total.value = res.total;
|
|
|
loading.value = false;
|
|
loading.value = false;
|
|
|
};
|
|
};
|
|
|
-const signupApprovals = async (type: String) => {
|
|
|
|
|
|
|
+const signupApprovals = async (type: string) => {
|
|
|
const res = await signupApproval({
|
|
const res = await signupApproval({
|
|
|
targetId: currentRow.value.id,
|
|
targetId: currentRow.value.id,
|
|
|
res: type,
|
|
res: type,
|
|
|
msg: dialoginput.value
|
|
msg: dialoginput.value
|
|
|
- })
|
|
|
|
|
- dialogVisible.value = false
|
|
|
|
|
- handleQuery()
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ });
|
|
|
|
|
+ dialogVisible.value = false;
|
|
|
|
|
+ handleQuery();
|
|
|
|
|
+};
|
|
|
const handleQuery = () => {
|
|
const handleQuery = () => {
|
|
|
queryParams.value.pageNum = 1;
|
|
queryParams.value.pageNum = 1;
|
|
|
getList();
|
|
getList();
|
|
@@ -200,15 +199,15 @@ const resetQuery = () => {
|
|
|
};
|
|
};
|
|
|
const exportSearch = debounce(() => {
|
|
const exportSearch = debounce(() => {
|
|
|
const params = {
|
|
const params = {
|
|
|
- ...queryParams.value,
|
|
|
|
|
|
|
+ ...queryParams.value
|
|
|
};
|
|
};
|
|
|
delete params.pageNum;
|
|
delete params.pageNum;
|
|
|
delete params.pageSize;
|
|
delete params.pageSize;
|
|
|
- exportTrainingMembers(params)
|
|
|
|
|
|
|
+ exportTrainingMembers(params);
|
|
|
}, 500);
|
|
}, 500);
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
getList();
|
|
getList();
|
|
|
- getExpertPersonCount()
|
|
|
|
|
|
|
+ getExpertPersonCount();
|
|
|
});
|
|
});
|
|
|
</script>
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|