|
@@ -1,43 +1,93 @@
|
|
|
-import { defineComponent, onMounted, onUnmounted, reactive, ref } from 'vue'
|
|
|
-import styles from './index.module.less'
|
|
|
-import signinTips from './images/signin-tips.png'
|
|
|
-import { Button, CellGroup, Field, Picker, Popup, closeToast, showToast } from 'vant'
|
|
|
-import { useRoute, useRouter } from 'vue-router'
|
|
|
-import OWxTip from '@/components/m-wx-tip'
|
|
|
-import { browser, getUrlCode } from '@/helpers/utils'
|
|
|
-import qs from 'query-string'
|
|
|
-import request from '@/helpers/request'
|
|
|
-import { goWechatAuth } from '@/state'
|
|
|
-import { useInterval, useIntervalFn } from '@vueuse/core'
|
|
|
-const classList: any[] = []
|
|
|
+import { defineComponent, onMounted, onUnmounted, reactive, ref } from 'vue';
|
|
|
+import styles from './index.module.less';
|
|
|
+import signinTips from './images/signin-tips.png';
|
|
|
+import {
|
|
|
+ Button,
|
|
|
+ CellGroup,
|
|
|
+ Field,
|
|
|
+ Picker,
|
|
|
+ Popup,
|
|
|
+ closeToast,
|
|
|
+ showToast
|
|
|
+} from 'vant';
|
|
|
+import { useRoute, useRouter } from 'vue-router';
|
|
|
+import OWxTip from '@/components/m-wx-tip';
|
|
|
+import { browser, getUrlCode } from '@/helpers/utils';
|
|
|
+import qs from 'query-string';
|
|
|
+import request from '@/helpers/request';
|
|
|
+import { goWechatAuth } from '@/state';
|
|
|
+import { useInterval, useIntervalFn } from '@vueuse/core';
|
|
|
+import MMessageTip from '@/components/m-message-tip';
|
|
|
+
|
|
|
+const classList: any = [];
|
|
|
for (let i = 1; i <= 40; i++) {
|
|
|
- classList.push({ text: i + '班', value: i })
|
|
|
+ classList.push({ text: i + '班', value: i });
|
|
|
}
|
|
|
+
|
|
|
+const GRADE_ENUM = {
|
|
|
+ '1': '一年级',
|
|
|
+ '2': '二年级',
|
|
|
+ '3': '三年级',
|
|
|
+ '4': '四年级',
|
|
|
+ '5': '五年级',
|
|
|
+ '6': '六年级',
|
|
|
+ '7': '七年级',
|
|
|
+ '8': '八年级',
|
|
|
+ '9': '九年级'
|
|
|
+} as any;
|
|
|
+const getGradeList = (gradeYear: string, instrumentCode?: string) => {
|
|
|
+ let tempList: any = [];
|
|
|
+ const five = [
|
|
|
+ { text: '一年级', value: 1, instrumentCode },
|
|
|
+ { text: '二年级', value: 2, instrumentCode },
|
|
|
+ { text: '三年级', value: 3, instrumentCode },
|
|
|
+ { text: '四年级', value: 4, instrumentCode },
|
|
|
+ { text: '五年级', value: 5, instrumentCode }
|
|
|
+ ];
|
|
|
+ const one = [{ text: '六年级', value: 6, instrumentCode }];
|
|
|
+ const three = [
|
|
|
+ { text: '七年级', value: 7, instrumentCode },
|
|
|
+ { text: '八年级', value: 8, instrumentCode },
|
|
|
+ { text: '九年级', value: 9, instrumentCode }
|
|
|
+ ];
|
|
|
+ if (gradeYear === 'FIVE_YEAR_SYSTEM') {
|
|
|
+ tempList.push(...[...five]);
|
|
|
+ } else if (gradeYear === 'SIX_YEAR_SYSTEM') {
|
|
|
+ tempList.push(...[...five, ...one]);
|
|
|
+ } else if (gradeYear === 'THREE_YEAR_SYSTEM') {
|
|
|
+ tempList.push(...[...three]);
|
|
|
+ } else if (gradeYear === 'FORE_YEAR_SYSTEM') {
|
|
|
+ tempList.push(...[...one, ...three]);
|
|
|
+ } else {
|
|
|
+ tempList.push(...[...five, ...one, ...three]);
|
|
|
+ }
|
|
|
+ return tempList;
|
|
|
+};
|
|
|
+
|
|
|
export default defineComponent({
|
|
|
name: 'pre-register',
|
|
|
setup() {
|
|
|
// 页面定时
|
|
|
- const pageTimer = useInterval(1000, { controls: true })
|
|
|
- pageTimer.pause()
|
|
|
- const router = useRouter()
|
|
|
- const route = useRoute()
|
|
|
+ const pageTimer = useInterval(1000, { controls: true });
|
|
|
+ pageTimer.pause();
|
|
|
+ const router = useRouter();
|
|
|
+ const route = useRoute();
|
|
|
const forms = reactive({
|
|
|
loading: true,
|
|
|
- orchestraId: route.query.id,
|
|
|
+ schoolId: route.query.id,
|
|
|
code: null,
|
|
|
- currentGradeList: [
|
|
|
- { text: '一年级', value: 1 },
|
|
|
- { text: '二年级', value: 2 },
|
|
|
- { text: '三年级', value: 3 },
|
|
|
- { text: '四年级', value: 4 },
|
|
|
- { text: '五年级', value: 5 },
|
|
|
- { text: '六年级', value: 6 },
|
|
|
- { text: '七年级', value: 7 },
|
|
|
- { text: '八年级', value: 8 },
|
|
|
- { text: '九年级', value: 9 }
|
|
|
- ], // 年级数组列表
|
|
|
showPicker: false,
|
|
|
classPicker: false,
|
|
|
+
|
|
|
+ gradeStatus: false,
|
|
|
+ classStatus: false,
|
|
|
+ gradePopupShow: false,
|
|
|
+ gradePopupIndex: [] as any, // 年级下拉索引
|
|
|
+ classPopupShow: false,
|
|
|
+ classPopupIndex: [] as any, // 班级下拉索引
|
|
|
+ gradeList: [] as any,
|
|
|
+ classList: [] as any,
|
|
|
+ schoolInstrumentSetType: null as any,
|
|
|
nameReg: /^[\u4E00-\u9FA5]+$/,
|
|
|
openId: '' as any,
|
|
|
id: null,
|
|
@@ -50,47 +100,47 @@ export default defineComponent({
|
|
|
applyStatus: false,
|
|
|
isPageHide: false,
|
|
|
parentConferencesAgenda: ''
|
|
|
- })
|
|
|
+ });
|
|
|
|
|
|
- const showPopup = ref(false)
|
|
|
- const showPopupMessage = ref('')
|
|
|
+ const showPopup = ref(false);
|
|
|
+ const showPopupMessage = ref('');
|
|
|
|
|
|
const message = (value: string) => {
|
|
|
if (!value) {
|
|
|
- return '请填写学生真实姓名'
|
|
|
+ return '请填写学生真实姓名';
|
|
|
} else if (!forms.nameReg.test(value)) {
|
|
|
- return '学员姓名必须为中文'
|
|
|
+ return '学员姓名必须为中文';
|
|
|
} else if (value.length < 2 || value.length > 15) {
|
|
|
- return '学员姓名必须为2~15个字'
|
|
|
+ return '学员姓名必须为2~15个字';
|
|
|
}
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
const onSubmit = async () => {
|
|
|
try {
|
|
|
if (forms.applyStatus) {
|
|
|
- showToast('家长会调查问卷已结束')
|
|
|
- return
|
|
|
+ showToast('家长会调查问卷已结束');
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
if (message(forms.username)) {
|
|
|
- showToast(message(forms.username))
|
|
|
- return
|
|
|
+ showToast(message(forms.username));
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
if (!forms.currentGrade) {
|
|
|
- showToast('请选择年级')
|
|
|
- return
|
|
|
+ showToast('请选择年级');
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
if (!forms.currentClass) {
|
|
|
- showToast('请选择班级')
|
|
|
- return
|
|
|
+ showToast('请选择班级');
|
|
|
+ return;
|
|
|
}
|
|
|
// 暂停回调
|
|
|
- forms.intervalFnRef?.pause()
|
|
|
+ forms.intervalFnRef?.pause();
|
|
|
// 页面计时暂停
|
|
|
- pageTimer.pause()
|
|
|
- await request.post('/api-student/open/studentBrowseRecord/updateStat', {
|
|
|
+ pageTimer.pause();
|
|
|
+ await request.post('/edu-app/open/studentBrowseRecord/updateStat', {
|
|
|
data: {
|
|
|
id: forms.id,
|
|
|
pageBrowseTime: pageTimer.counter.value,
|
|
@@ -98,137 +148,206 @@ export default defineComponent({
|
|
|
currentGrade: forms.currentGrade,
|
|
|
currentClass: forms.currentClass ? Number(forms.currentClass) : null
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
|
|
|
router.push({
|
|
|
path: '/pre-register-video',
|
|
|
query: {
|
|
|
saveId: forms.id,
|
|
|
- id: forms.orchestraId, // 乐团编号
|
|
|
+ id: forms.schoolId, // 乐团编号
|
|
|
openId: forms.openId //
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
} catch {
|
|
|
// 还原
|
|
|
- forms.intervalFnRef?.resume()
|
|
|
- pageTimer.resume()
|
|
|
+ forms.intervalFnRef?.resume();
|
|
|
+ pageTimer.resume();
|
|
|
}
|
|
|
// router.push('/pre-register-video')
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
const formatterClass = (value: any, list: any[]) => {
|
|
|
- let txt = ''
|
|
|
+ let txt = '';
|
|
|
list.forEach((listItem: any) => {
|
|
|
if (listItem.value == value) {
|
|
|
- txt = listItem.text
|
|
|
+ txt = listItem.text;
|
|
|
}
|
|
|
- })
|
|
|
- return txt
|
|
|
- }
|
|
|
+ });
|
|
|
+ return txt;
|
|
|
+ };
|
|
|
|
|
|
// 更新时间
|
|
|
const updateStat = async (pageBrowseTime = 10) => {
|
|
|
try {
|
|
|
- await request.post('/api-student/open/studentBrowseRecord/updateStat', {
|
|
|
+ await request.post('/edu-app/open/studentBrowseRecord/updateStat', {
|
|
|
data: {
|
|
|
id: forms.id,
|
|
|
pageBrowseTime // 固定10秒
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
} catch {
|
|
|
//
|
|
|
}
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
onMounted(async () => {
|
|
|
try {
|
|
|
- if (!forms.orchestraId) {
|
|
|
- showToast('信息获取失败,请联系老师')
|
|
|
+ if (!forms.schoolId) {
|
|
|
+ showToast('信息获取失败,请联系老师');
|
|
|
}
|
|
|
const { data } = await request.get(
|
|
|
- '/api-student/open/orchestra/detail/' + forms.orchestraId
|
|
|
- )
|
|
|
- forms.parentConferencesAgenda = data.parentConferencesAgenda
|
|
|
+ '/edu-app/open/schoolExtend/detail?id=' + forms.schoolId
|
|
|
+ );
|
|
|
+ const schoolExtend = data.schoolExtend;
|
|
|
+ forms.parentConferencesAgenda = schoolExtend.parentConferencesAgenda;
|
|
|
+ forms.schoolInstrumentSetType = data.school?.instrumentSetType;
|
|
|
+ const schoolInstrumentList = data.school?.schoolInstrumentList || [];
|
|
|
+ if (forms.schoolInstrumentSetType === 'SCHOOL') {
|
|
|
+ const instrumentCode = schoolInstrumentList[0]?.instrumentCode;
|
|
|
+ forms.gradeList = getGradeList(data.gradeYear, instrumentCode);
|
|
|
+ forms.classList = classList;
|
|
|
+ } else if (forms.schoolInstrumentSetType === 'GRADE') {
|
|
|
+ schoolInstrumentList.forEach((item: any) => {
|
|
|
+ forms.gradeList.push({
|
|
|
+ text: GRADE_ENUM[item.gradeNum],
|
|
|
+ value: item.gradeNum,
|
|
|
+ instrumentId: item.instrumentId,
|
|
|
+ instrumentCode: item.instrumentCode
|
|
|
+ });
|
|
|
+ });
|
|
|
+ forms.gradeList.sort((a: any, b: any) => a.value - b.value);
|
|
|
+ forms.classList = classList;
|
|
|
+ } else if (forms.schoolInstrumentSetType === 'CLASS') {
|
|
|
+ // 班级
|
|
|
+ const tempGradeList: any[] = [];
|
|
|
+ schoolInstrumentList.forEach((item: any) => {
|
|
|
+ if (!tempGradeList.includes(item.gradeNum)) {
|
|
|
+ tempGradeList.push(item.gradeNum);
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
+ const lastGradeList: any[] = [];
|
|
|
+ tempGradeList.forEach((temp: any) => {
|
|
|
+ const list = {
|
|
|
+ text: GRADE_ENUM[temp],
|
|
|
+ value: temp,
|
|
|
+ instrumentId: '',
|
|
|
+ instrumentCode: '',
|
|
|
+ instrumentName: '',
|
|
|
+ classList: [] as any
|
|
|
+ };
|
|
|
+ schoolInstrumentList.forEach((item: any) => {
|
|
|
+ if (temp === item.gradeNum) {
|
|
|
+ list.instrumentId = item.instrumentId;
|
|
|
+ list.instrumentCode = item.instrumentCode;
|
|
|
+ list.instrumentName = item.instrumentName;
|
|
|
+ list.classList.push({
|
|
|
+ text: item.classNum + '班',
|
|
|
+ value: item.classNum,
|
|
|
+ instrumentCode: item.instrumentCode
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 排序班级
|
|
|
+ list.classList.sort((a: any, b: any) => a.value - b.value);
|
|
|
+ lastGradeList.push(list);
|
|
|
+ });
|
|
|
+ lastGradeList.sort((a: any, b: any) => a.value - b.value);
|
|
|
+ forms.gradeList = lastGradeList;
|
|
|
+ forms.classList = [];
|
|
|
+ } else {
|
|
|
+ forms.gradeList = getGradeList(data.gradeYear);
|
|
|
+ forms.classList = classList;
|
|
|
+ }
|
|
|
// 判断是否获取微信code码
|
|
|
- if (!forms.code) return
|
|
|
+ if (!forms.code) return;
|
|
|
|
|
|
- // 乐团注册
|
|
|
- if (data.orchestraRegisterType === 'ORCHESTRA' && data.status !== 'PRE_REGISTER') {
|
|
|
- showToast('家长会调查问卷已结束')
|
|
|
- forms.applyStatus = true
|
|
|
- return
|
|
|
- }
|
|
|
+ // // 乐团注册
|
|
|
+ // if (data.status !== 'PRE_REGISTER') {
|
|
|
+ // showToast('家长会调查问卷已结束')
|
|
|
+ // forms.applyStatus = true
|
|
|
+ // return
|
|
|
+ // }
|
|
|
|
|
|
// 家长会注册
|
|
|
// 'DOING' | 'DONE'
|
|
|
- if (
|
|
|
- data.orchestraRegisterType === 'PARENT_CONFERENCES' &&
|
|
|
- data.status !== 'PARENT_TEACHER_REGISTRATION' &&
|
|
|
- data.status !== 'DOING' &&
|
|
|
- data.status !== 'DONE'
|
|
|
- ) {
|
|
|
- showToast('家长会调查问卷已结束')
|
|
|
- forms.applyStatus = true
|
|
|
- return
|
|
|
- }
|
|
|
+ // if (
|
|
|
+ // data.orchestraRegisterType === 'PARENT_CONFERENCES' &&
|
|
|
+ // data.status !== 'PARENT_TEACHER_REGISTRATION' &&
|
|
|
+ // data.status !== 'DOING' &&
|
|
|
+ // data.status !== 'DONE'
|
|
|
+ // ) {
|
|
|
+ // showToast('家长会调查问卷已结束')
|
|
|
+ // forms.applyStatus = true
|
|
|
+ // return
|
|
|
+ // }
|
|
|
|
|
|
- if (forms.orchestraId) {
|
|
|
- // 提示乐团报名失败
|
|
|
- showPopupMessage.value = '二维码已过期'
|
|
|
- showPopup.value = true
|
|
|
- return
|
|
|
- }
|
|
|
+ // if (!forms.schoolId) {
|
|
|
+ // // 提示乐团报名失败
|
|
|
+ // showPopupMessage.value = '二维码已过期';
|
|
|
+ // showPopup.value = true;
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
|
|
|
- const recordAdd = await request.post('/api-student/open/studentBrowseRecord/add', {
|
|
|
- data: {
|
|
|
- orchestraId: forms.orchestraId,
|
|
|
- code: forms.code,
|
|
|
- openId: forms.openId
|
|
|
+ const recordAdd = await request.post(
|
|
|
+ '/edu-app/open/studentBrowseRecord/add',
|
|
|
+ {
|
|
|
+ data: {
|
|
|
+ schoolId: forms.schoolId,
|
|
|
+ code: forms.code,
|
|
|
+ openId: forms.openId
|
|
|
+ }
|
|
|
}
|
|
|
- })
|
|
|
- const recordObj = recordAdd.data
|
|
|
- forms.currentClass = recordObj.currentClass
|
|
|
- forms.currentGrade = recordObj.currentGrade
|
|
|
- forms.openId = recordObj.openId
|
|
|
- forms.username = recordObj.username
|
|
|
- forms.videoBrowseData = recordObj.videoBrowseData
|
|
|
- forms.videoBrowsePoint = recordObj.videoBrowsePoint
|
|
|
- forms.id = recordObj.id
|
|
|
-
|
|
|
- sessionStorage.setItem('active-open-id', recordObj.openId)
|
|
|
-
|
|
|
- pageTimer.resume()
|
|
|
+ );
|
|
|
+ const recordObj = recordAdd.data;
|
|
|
+ forms.currentClass = recordObj.currentClass;
|
|
|
+ forms.currentGrade = recordObj.currentGrade;
|
|
|
+ forms.openId = recordObj.openId;
|
|
|
+ forms.username = recordObj.username;
|
|
|
+ forms.videoBrowseData = recordObj.videoBrowseData;
|
|
|
+ forms.videoBrowsePoint = recordObj.videoBrowsePoint;
|
|
|
+ forms.id = recordObj.id;
|
|
|
+
|
|
|
+ sessionStorage.setItem('active-open-id', recordObj.openId);
|
|
|
+
|
|
|
+
|
|
|
+ console.log(forms, 'forms')
|
|
|
+
|
|
|
+ pageTimer.resume();
|
|
|
// 间隔10秒更新停留时间
|
|
|
forms.intervalFnRef = useIntervalFn(() => {
|
|
|
// 页面时间恢复
|
|
|
- pageTimer.counter.value = 0
|
|
|
- pageTimer.resume()
|
|
|
- updateStat()
|
|
|
- }, 10000)
|
|
|
+ pageTimer.counter.value = 0;
|
|
|
+ pageTimer.resume();
|
|
|
+ updateStat();
|
|
|
+ }, 10000);
|
|
|
} catch {
|
|
|
//
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
|
|
|
const getAppIdAndCode = async (url?: string) => {
|
|
|
try {
|
|
|
- const { data } = await request.get('/api-school/open/paramConfig/wechatAppId')
|
|
|
+ const { data } = await request.get(
|
|
|
+ '/edu-app/open/paramConfig/wechatAppId'
|
|
|
+ );
|
|
|
// 判断是否有微信appId
|
|
|
if (data) {
|
|
|
- closeToast()
|
|
|
- goWechatAuth(data, url)
|
|
|
+ closeToast();
|
|
|
+ goWechatAuth(data, url);
|
|
|
}
|
|
|
- } catch {
|
|
|
+ } catch(e) {
|
|
|
//
|
|
|
+ console.log(e)
|
|
|
}
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
if (browser().weixin) {
|
|
|
//授权
|
|
|
- const openId = sessionStorage.getItem('active-open-id')
|
|
|
- forms.openId = openId
|
|
|
- const code = getUrlCode()
|
|
|
+ const openId = sessionStorage.getItem('active-open-id');
|
|
|
+ forms.openId = openId;
|
|
|
+ const code = getUrlCode();
|
|
|
+ console.log(code, 'code')
|
|
|
if (!code) {
|
|
|
const newUrl =
|
|
|
window.location.origin +
|
|
@@ -238,70 +357,47 @@ export default defineComponent({
|
|
|
'?' +
|
|
|
qs.stringify({
|
|
|
...route.query
|
|
|
- })
|
|
|
- getAppIdAndCode(newUrl)
|
|
|
- return ''
|
|
|
+ });
|
|
|
+ getAppIdAndCode(newUrl);
|
|
|
+ return '';
|
|
|
} else {
|
|
|
- forms.code = code
|
|
|
+ forms.code = code;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
const onPageShow = () => {
|
|
|
- console.log(forms.isPageHide, 'showInfo')
|
|
|
+ console.log(forms.isPageHide, 'showInfo');
|
|
|
if (forms.isPageHide) {
|
|
|
- window.location.reload()
|
|
|
+ window.location.reload();
|
|
|
}
|
|
|
- }
|
|
|
+ };
|
|
|
// 处理监听页面返回不刷新的问题
|
|
|
- window.addEventListener('pageshow', onPageShow)
|
|
|
+ window.addEventListener('pageshow', onPageShow);
|
|
|
|
|
|
const onPageHide = () => {
|
|
|
- console.log(forms.isPageHide, 'showInfo')
|
|
|
- forms.isPageHide = true
|
|
|
- }
|
|
|
- window.addEventListener('pagehide', onPageHide)
|
|
|
+ console.log(forms.isPageHide, 'showInfo');
|
|
|
+ forms.isPageHide = true;
|
|
|
+ };
|
|
|
+ window.addEventListener('pagehide', onPageHide);
|
|
|
|
|
|
onUnmounted(() => {
|
|
|
- window.removeEventListener('pageshow', onPageShow)
|
|
|
- window.removeEventListener('pagehide', onPageHide)
|
|
|
- })
|
|
|
+ window.removeEventListener('pageshow', onPageShow);
|
|
|
+ window.removeEventListener('pagehide', onPageHide);
|
|
|
+ });
|
|
|
return () => (
|
|
|
<div class={styles['per-register-active']}>
|
|
|
<div class={styles.flowPath}>
|
|
|
<i class={styles.flowPathTitle}></i>
|
|
|
- <div class={styles.flowPathContent} v-html={forms.parentConferencesAgenda}>
|
|
|
- {/* 一、请所有家长进行<span>签到</span>
|
|
|
- <br />
|
|
|
- 二、<span>观看</span>管乐团家长会议
|
|
|
- <br />
|
|
|
- 1、学校领导讲话(5分钟)
|
|
|
- <br />
|
|
|
- 2、基金会老师介绍乐团事项(20分钟)
|
|
|
- <br />
|
|
|
- <p
|
|
|
- style={{
|
|
|
- 'padding-left': '1em'
|
|
|
- }}
|
|
|
- >
|
|
|
- *乐团组建背景及政策
|
|
|
- <br />
|
|
|
- *乐团发展规划与乐器知识讲解
|
|
|
- <br />
|
|
|
- *学校/基金会/家长各方职责与投入
|
|
|
- <br />
|
|
|
- *入团流程讲解
|
|
|
- </p>
|
|
|
- 三、请
|
|
|
- <span>“有意向”</span>让孩子加入乐团的家长点击
|
|
|
- <span>“乐团报名”</span>完成信息填报 */}
|
|
|
- </div>
|
|
|
+ <div
|
|
|
+ class={styles.flowPathContent}
|
|
|
+ v-html={forms.parentConferencesAgenda}></div>
|
|
|
</div>
|
|
|
|
|
|
<div class={styles.signin}>
|
|
|
<div class={styles.tips}>
|
|
|
<img src={signinTips} class={styles.signinTips} />
|
|
|
<p>
|
|
|
- 请先进行<span>签到</span>,再观看<span>管乐团家长会视频</span>
|
|
|
+ 请先进行<span>签到</span>,再观看<span>家长会视频</span>
|
|
|
</p>
|
|
|
</div>
|
|
|
|
|
@@ -319,9 +415,12 @@ export default defineComponent({
|
|
|
placeholder="请选择年级"
|
|
|
isLink
|
|
|
readonly
|
|
|
- modelValue={formatterClass(forms.currentGrade, forms.currentGradeList)}
|
|
|
+ modelValue={formatterClass(forms.currentGrade, forms.gradeList)}
|
|
|
clickable={false}
|
|
|
- onClick={() => (forms.showPicker = true)}
|
|
|
+ onClick={() => {
|
|
|
+ forms.gradePopupIndex = [forms.currentGrade];
|
|
|
+ forms.gradeStatus = true;
|
|
|
+ }}
|
|
|
/>
|
|
|
<Field
|
|
|
label="班级"
|
|
@@ -329,9 +428,19 @@ export default defineComponent({
|
|
|
placeholder="请选择班级"
|
|
|
isLink
|
|
|
readonly
|
|
|
- modelValue={formatterClass(forms.currentClass, classList)}
|
|
|
+ modelValue={formatterClass(forms.currentClass, forms.classList)}
|
|
|
clickable={false}
|
|
|
- onClick={() => (forms.classPicker = true)}
|
|
|
+ onClick={() => {
|
|
|
+ if (
|
|
|
+ forms.schoolInstrumentSetType === 'CLASS' &&
|
|
|
+ forms.classList.length <= 0
|
|
|
+ ) {
|
|
|
+ showToast('请先选择年级');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ forms.classPopupIndex = [forms.currentClass];
|
|
|
+ forms.classStatus = true;
|
|
|
+ }}
|
|
|
/>
|
|
|
|
|
|
<Button class={styles.submitBtn} onClick={onSubmit}></Button>
|
|
@@ -339,45 +448,85 @@ export default defineComponent({
|
|
|
</div>
|
|
|
|
|
|
{/* 是否在微信中打开 */}
|
|
|
- {/* <OWxTip /> */}
|
|
|
+ <OWxTip />
|
|
|
|
|
|
{/* 年级 */}
|
|
|
- <Popup v-model:show={forms.showPicker} position="bottom" round>
|
|
|
- <Picker
|
|
|
- columns={forms.currentGradeList}
|
|
|
- onCancel={() => (forms.showPicker = false)}
|
|
|
- onConfirm={({ selectedValues }) => {
|
|
|
- forms.currentGrade = selectedValues[0]
|
|
|
- forms.showPicker = false
|
|
|
- }}
|
|
|
- />
|
|
|
- </Popup>
|
|
|
+ <Popup
|
|
|
+ v-model:show={forms.gradeStatus}
|
|
|
+ position="bottom"
|
|
|
+ round
|
|
|
+ safeAreaInsetBottom
|
|
|
+ lazyRender={false}
|
|
|
+ class={'popupBottomSearch'}
|
|
|
+ onOpen={() => {
|
|
|
+ forms.gradePopupShow = true;
|
|
|
+ }}
|
|
|
+ onClosed={() => {
|
|
|
+ forms.gradePopupShow = false;
|
|
|
+ }}>
|
|
|
+ {forms.gradePopupShow && (
|
|
|
+ <Picker
|
|
|
+ showToolbar
|
|
|
+ v-model={forms.gradePopupIndex}
|
|
|
+ columns={forms.gradeList}
|
|
|
+ onCancel={() => (forms.gradeStatus = false)}
|
|
|
+ onConfirm={(val: any) => {
|
|
|
+ const selectedOption = val.selectedOptions[0];
|
|
|
+ forms.currentGrade = selectedOption.value;
|
|
|
+ forms.gradeStatus = false;
|
|
|
|
|
|
+ if (forms.schoolInstrumentSetType === 'CLASS') {
|
|
|
+ forms.classList = selectedOption.classList;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (
|
|
|
+ ['CLASS', 'GRADE'].includes(forms.schoolInstrumentSetType)
|
|
|
+ ) {
|
|
|
+ forms.currentClass = '';
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ )}
|
|
|
+ </Popup>
|
|
|
{/* 班级 */}
|
|
|
- <Popup v-model:show={forms.classPicker} position="bottom" round>
|
|
|
- <Picker
|
|
|
- columns={classList}
|
|
|
- onCancel={() => (forms.classPicker = false)}
|
|
|
- onConfirm={({ selectedValues }) => {
|
|
|
- forms.currentClass = selectedValues[0]
|
|
|
- forms.classPicker = false
|
|
|
- }}
|
|
|
- />
|
|
|
+ <Popup
|
|
|
+ v-model:show={forms.classStatus}
|
|
|
+ position="bottom"
|
|
|
+ round
|
|
|
+ class={'popupBottomSearch'}
|
|
|
+ onOpen={() => {
|
|
|
+ forms.classPopupShow = true;
|
|
|
+ }}
|
|
|
+ onClosed={() => {
|
|
|
+ forms.classPopupShow = false;
|
|
|
+ }}>
|
|
|
+ {forms.classPopupShow && (
|
|
|
+ <Picker
|
|
|
+ showToolbar
|
|
|
+ v-model={forms.classPopupIndex}
|
|
|
+ columns={forms.classList}
|
|
|
+ onCancel={() => (forms.classStatus = false)}
|
|
|
+ onConfirm={({ selectedValues }) => {
|
|
|
+ forms.currentClass = selectedValues[0];
|
|
|
+ forms.classStatus = false;
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ )}
|
|
|
</Popup>
|
|
|
|
|
|
- <Popup
|
|
|
+ {/* <Popup
|
|
|
v-model:show={showPopup.value}
|
|
|
round
|
|
|
style={{ width: '88%' }}
|
|
|
closeOnClickOverlay={false}
|
|
|
- class={styles.wxPopupDialog}
|
|
|
- >
|
|
|
+ class={styles.wxPopupDialog}>
|
|
|
<div class={styles.popupContainer}>
|
|
|
<p class={styles.title}>温馨提示</p>
|
|
|
<p class={styles.popupTips} v-html={showPopupMessage.value}></p>
|
|
|
</div>
|
|
|
- </Popup>
|
|
|
+ </Popup> */}
|
|
|
+ <MMessageTip show={showPopup.value} title='温馨提示' message={showPopupMessage.value} showCloseButton={false} showConfirmButton={false} />
|
|
|
</div>
|
|
|
- )
|
|
|
+ );
|
|
|
}
|
|
|
-})
|
|
|
+});
|