|
|
@@ -62,44 +62,85 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="报名人数" prop="registrantsNumber">
|
|
|
+ <el-form-item label="报名人数" prop="registrantsNumber"
|
|
|
+ :rules="[{ required: true, message: '请选择是否有报名限制', trigger: 'change' }]">
|
|
|
<div class="d-flex a-c"><el-radio-group v-model="form.conditions.totalCheck"
|
|
|
style="flex-wrap: nowrap">
|
|
|
<el-radio label="0">不限制</el-radio>
|
|
|
<el-radio label="1">限制</el-radio>
|
|
|
</el-radio-group>
|
|
|
- <el-input class="pl-10" v-model="form.conditions.total" maxlength="20"
|
|
|
- placeholder="请输入报名人数" clearable
|
|
|
- :disabled="form.conditions.totalCheck !== '1'" />
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12" v-if="form.conditions.totalCheck == '1'">
|
|
|
- <el-form-item label="限制条件" prop="restrictiveConditions">
|
|
|
- <div class="d-flex">
|
|
|
- <div class="d-flex flex-cln">
|
|
|
- <el-checkbox v-model="form.conditions.levelTotalCheck" label="按盟员单位等级限制"
|
|
|
- size="large" true-value="1" false-value="0" />
|
|
|
- <div v-if="form.conditions.levelTotalCheck == '1' && form.conditions.cpyTotalCheck == '0'"
|
|
|
- class="pl-10 pr-10 pt-5 pb-5 border">
|
|
|
+ <el-form-item prop="restrictiveConditions">
|
|
|
+ <template #label>
|
|
|
+ <span>限制条件</span>
|
|
|
+ <span class="c-999 f-s-12 f-w-4">(不限制的条件可不填)</span>
|
|
|
+ </template>
|
|
|
+ <div class="d-flex flex-cln pl-10">
|
|
|
+ <div class="d-flex">
|
|
|
+ <div class="c-#606266 f-w-6" style="">报名总人数限制:</div>
|
|
|
+ <el-input class="flex1 pl-5" v-model="form.conditions.total" maxlength="20"
|
|
|
+ placeholder="请输入报名人数" clearable
|
|
|
+ :disabled="form.conditions.totalCheck !== '1'"
|
|
|
+ style="max-width: 200px;" />
|
|
|
+ </div>
|
|
|
+ <div class="c-#606266 f-w-6" style="">条件限制:</div>
|
|
|
+ <div class="d-flex">
|
|
|
+ <div class="d-flex flex-cln">
|
|
|
+ <el-checkbox v-model="form.conditions.levelTotalCheck" label="按盟员单位等级限制"
|
|
|
+ size="large" true-value="1" false-value="0" />
|
|
|
+ <div v-if="form.conditions.levelTotalCheck == '1' && form.conditions.cpyTotalCheck == '0'"
|
|
|
+ class="pl-10 pr-10 pt-5 pb-5 border">
|
|
|
+ <template v-for="(item, index) in form.conditions.levelCheck"
|
|
|
+ :key="index">
|
|
|
+ <div class="d-flex a-c">
|
|
|
+ <el-checkbox v-model="item.check" true-value="1"
|
|
|
+ false-value="0"
|
|
|
+ :label="'所有' + selectDictLabels(vip_level, item.vipLevel, ',') + '参会人数≤'"
|
|
|
+ size="large" />
|
|
|
+ <el-input class="pl-10" v-model="item.total" maxlength="20"
|
|
|
+ placeholder="请输入报名人数" :disabled="!+item.check" />
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="d-flex flex-cln ml-20"> <el-checkbox
|
|
|
+ v-model="form.conditions.cpyTotalCheck" label="按每家单位人数限制"
|
|
|
+ size="large" true-value="1" false-value="0" />
|
|
|
+ <div v-if="form.conditions.cpyTotalCheck == '1' && form.conditions.levelTotalCheck == '0'"
|
|
|
+ class="pl-10 pr-10 pt-5 pb-5 border">
|
|
|
+
|
|
|
+ <template v-for="(item, index) in form.conditions.cpyCheck"
|
|
|
+ :key="index">
|
|
|
+ <div class="d-flex a-c">
|
|
|
+ <el-checkbox v-model="item.check"
|
|
|
+ :label="selectDictLabels(vip_level, item.vipLevel, ',') + '限制每家单位人数≤'"
|
|
|
+ size="large" true-value="1" false-value="0" /><el-input
|
|
|
+ class="pl-10" v-model="item.total" maxlength="20"
|
|
|
+ placeholder="请输入报名人数" :disabled="!+item.check" />
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="d-flex border"
|
|
|
+ v-if="form.conditions.levelTotalCheck == '1' && form.conditions.cpyTotalCheck == '1'">
|
|
|
+ <div class="pl-10 pr-10 pt-5 pb-5 ">
|
|
|
<template v-for="(item, index) in form.conditions.levelCheck"
|
|
|
:key="index">
|
|
|
<div class="d-flex a-c">
|
|
|
- <el-checkbox v-model="item.check" true-value="1" false-value="0"
|
|
|
+ <el-checkbox v-model="item.check"
|
|
|
:label="'所有' + selectDictLabels(vip_level, item.vipLevel, ',') + '参会人数≤'"
|
|
|
- size="large" />
|
|
|
- <el-input class="pl-10" v-model="item.total" maxlength="20"
|
|
|
+ size="large" true-value="1" false-value="0" /><el-input
|
|
|
+ class="pl-10" v-model="item.total" maxlength="20"
|
|
|
placeholder="请输入报名人数" :disabled="!+item.check" />
|
|
|
</div>
|
|
|
</template>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="d-flex flex-cln ml-20"> <el-checkbox
|
|
|
- v-model="form.conditions.cpyTotalCheck" label="按每家单位人数限制" size="large"
|
|
|
- true-value="1" false-value="0" />
|
|
|
- <div v-if="form.conditions.cpyTotalCheck == '1' && form.conditions.levelTotalCheck == '0'"
|
|
|
- class="pl-10 pr-10 pt-5 pb-5 border">
|
|
|
-
|
|
|
+ <div class="pl-10 pr-10 pt-5 pb-5">
|
|
|
<template v-for="(item, index) in form.conditions.cpyCheck"
|
|
|
:key="index">
|
|
|
<div class="d-flex a-c">
|
|
|
@@ -110,36 +151,9 @@
|
|
|
placeholder="请输入报名人数" :disabled="!+item.check" />
|
|
|
</div>
|
|
|
</template>
|
|
|
-
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="d-flex border">
|
|
|
- <div v-if="form.conditions.levelTotalCheck == '1' && form.conditions.cpyTotalCheck == '1'"
|
|
|
- class="pl-10 pr-10 pt-5 pb-5 ">
|
|
|
- <template v-for="(item, index) in form.conditions.levelCheck" :key="index">
|
|
|
- <div class="d-flex a-c">
|
|
|
- <el-checkbox v-model="item.check"
|
|
|
- :label="'所有' + selectDictLabels(vip_level, item.vipLevel, ',') + '参会人数≤'"
|
|
|
- size="large" true-value="1" false-value="0" /><el-input
|
|
|
- class="pl-10" v-model="item.total" maxlength="20"
|
|
|
- placeholder="请输入报名人数" :disabled="!+item.check" />
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- <div v-if="form.conditions.levelTotalCheck == '1' && form.conditions.cpyTotalCheck == '1'"
|
|
|
- class="pl-10 pr-10 pt-5 pb-5 ">
|
|
|
- <template v-for="(item, index) in form.conditions.cpyCheck" :key="index">
|
|
|
- <div class="d-flex a-c">
|
|
|
- <el-checkbox v-model="item.check"
|
|
|
- :label="selectDictLabels(vip_level, item.vipLevel, ',') + '限制每家单位人数≤'"
|
|
|
- size="large" true-value="1" false-value="0" /><el-input
|
|
|
- class="pl-10" v-model="item.total" maxlength="20"
|
|
|
- placeholder="请输入报名人数" :disabled="!+item.check" />
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
@@ -205,7 +219,7 @@
|
|
|
<el-radio-group v-model="form.certFlag">
|
|
|
<el-radio v-for="item in yes_no" :key="item.value" :label="item.value">{{
|
|
|
item.label
|
|
|
- }}</el-radio>
|
|
|
+ }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<div v-if="+form.certFlag" class="ml-20">
|
|
|
@@ -287,15 +301,13 @@ import { ref, reactive, onMounted } from 'vue';
|
|
|
import { debounce } from 'lodash';
|
|
|
import { useRouter } from 'vue-router';
|
|
|
import { trainingAdd, trainingDetail, trainingUpdate } from '@/api/training';
|
|
|
-import { checkPermi } from '@/utils/permission';
|
|
|
-import { FieldDefinition, FieldType } from '../models/type'
|
|
|
+import { FieldDefinition } from '../models/type'
|
|
|
// 需要添加以下导入
|
|
|
import MeetingCustom from '../models/meeting-custom.vue'
|
|
|
import MeetingEditors from '../models/meeting-editors.vue'
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
const { dm_training_join_type, yes_no, lm_training_cert, vip_level } = toRefs<any>(proxy?.useDict('dm_training_join_type', 'yes_no', 'lm_training_cert', 'vip_level'));
|
|
|
const fields = ref<FieldDefinition[]>([])
|
|
|
-const changefields = ref(true)
|
|
|
const showSignIn = ref(false);
|
|
|
const fixedField = ref<FieldDefinition[]>([{
|
|
|
name: `ent-${generateSecureRandomString()}`,
|
|
|
@@ -325,7 +337,6 @@ function generateSecureRandomString(length = 8) {
|
|
|
return result;
|
|
|
}
|
|
|
const Cancel = () => {
|
|
|
- // localStorage.removeItem('RegistrationInformation');
|
|
|
router.go(-1)
|
|
|
}
|
|
|
const router = useRouter();
|
|
|
@@ -372,7 +383,7 @@ const rules = reactive({
|
|
|
certFlag: [{ required: true, message: '请选择是否颁发证书', trigger: 'change' }],
|
|
|
certificateInfo: [{ required: true, message: '请选择证书名称', trigger: 'change' }],
|
|
|
description: [{ required: true, message: '请输入培训详情', trigger: 'blur' }],
|
|
|
- eleSignature: [{ required: true, message: '请输入培训详情', trigger: 'blur' }],
|
|
|
+ eleSignature: [{ required: true, message: '请选择是否电子手签', trigger: 'blur' }],
|
|
|
// coverImg: [{ required: true, message: '请上传封面图', trigger: 'change' }],
|
|
|
// trainingImg: [{ required: true, message: '请上传会议图', trigger: 'change' }],
|
|
|
contactName: [{ required: true, message: '请输入会议联系人', trigger: 'blur' }],
|
|
|
@@ -388,15 +399,13 @@ const save = debounce(async () => {
|
|
|
signupStart: form.value.signupsTime ? form.value.signupsTime[0] : undefined,
|
|
|
signupEnd: form.value.signupsTime ? form.value.signupsTime[1] : undefined,
|
|
|
certificateInfo: +form.value.certFlag ? form.value.certificateInfo : undefined,
|
|
|
- questions: (fields.value).map((item, index) => ({
|
|
|
+ questions: fields.value.map((item, index) => ({
|
|
|
...item,
|
|
|
sort: index + 1 // 从 1 开始
|
|
|
}))
|
|
|
};
|
|
|
const res = form.value.id ? await trainingUpdate(params) : await trainingAdd(params);
|
|
|
if (res && res.code === 200) {
|
|
|
- // localStorage.removeItem('RegistrationInformation');
|
|
|
-
|
|
|
router.go(-1);
|
|
|
}
|
|
|
}, 500);
|
|
|
@@ -431,22 +440,8 @@ const getMeetingDetail = async () => {
|
|
|
};
|
|
|
onMounted(() => {
|
|
|
getMeetingDetail();
|
|
|
- // if (localStorage.getItem('RegistrationInformation')) {
|
|
|
- // fields.value = JSON.parse(localStorage.getItem('RegistrationInformation'))
|
|
|
- // }
|
|
|
});
|
|
|
-// watch(
|
|
|
-// () => showSignIn.value,
|
|
|
-// () => {
|
|
|
-// if (localStorage.getItem('RegistrationInformation')) {
|
|
|
-// fields.value = JSON.parse(localStorage.getItem('RegistrationInformation'))
|
|
|
-// } else {
|
|
|
-// console.log(fields.value);
|
|
|
-// }
|
|
|
|
|
|
-// },
|
|
|
-// { immediate: true }
|
|
|
-// );
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
.border {
|