|
@@ -102,45 +102,101 @@ export default defineComponent({
|
|
|
submitLoading: false,
|
|
|
showSelectStudent: false, // 选择学生
|
|
|
studentList: [], // 手机号关联学生列表
|
|
|
- studentItem: {} as any // 选择的学生
|
|
|
- // bugGoods: false, // 是否购买AI
|
|
|
+ studentItem: {} as any, // 选择的学生
|
|
|
+
|
|
|
+ registerAllFlag: false // 是否全部登记
|
|
|
});
|
|
|
|
|
|
const studentInfo = reactive({
|
|
|
- autoRegister: true,
|
|
|
- multiUser: true, // 是否为多用户
|
|
|
- client_id: 'cooleshow-student',
|
|
|
- client_secret: 'cooleshow-student',
|
|
|
- extra: {
|
|
|
- nickname: '',
|
|
|
- currentGradeNum: '' as any,
|
|
|
- currentClass: '' as any,
|
|
|
- gender: 1 as any,
|
|
|
- registerType: null as any, // 报名类型
|
|
|
- giftVipDay: 0 // 赠送会员天数
|
|
|
- },
|
|
|
- grant_type: 'password',
|
|
|
- loginType: 'SMS',
|
|
|
- password: '',
|
|
|
- username: ''
|
|
|
+ nickname: '',
|
|
|
+ areaName: '',
|
|
|
+ schoolName: '',
|
|
|
+ currentGradeNum: '' as any,
|
|
|
+ gender: 1 as any,
|
|
|
+ registerType: null as any // 报名类型
|
|
|
+ });
|
|
|
+
|
|
|
+ const btnText = computed(() => {
|
|
|
+ if (forms.registerAllFlag) {
|
|
|
+ return '该账号学生已全部登记';
|
|
|
+ }
|
|
|
+ if (forms.studentItem?.registerFlag) {
|
|
|
+ return '该学生已登记';
|
|
|
+ }
|
|
|
+ return '登记';
|
|
|
});
|
|
|
|
|
|
const getDetail = async () => {
|
|
|
try {
|
|
|
const { data } = await request.post(
|
|
|
- '/edu-app/open/instrumentRegister/instrumentUseRegister',
|
|
|
+ '/edu-app/open/instrumentRegister/getStudentActivationRecord',
|
|
|
{
|
|
|
requestType: 'form',
|
|
|
data: {
|
|
|
- activationCodeRecordId: forms.activationCodeRecordId
|
|
|
+ mobile: route.query.mobile
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
+
|
|
|
+ forms.studentList = data || [];
|
|
|
+
|
|
|
+ let count = 0;
|
|
|
+ forms.studentList.forEach((item: any) => {
|
|
|
+ if (!item.registerFlag && !forms.studentItem?.userId) {
|
|
|
+ forms.studentItem = item;
|
|
|
+ }
|
|
|
+ if (item.registerFlag) {
|
|
|
+ count++;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (forms.studentList.length === count) {
|
|
|
+ forms.registerAllFlag = true;
|
|
|
+ forms.studentItem = forms.studentList[0];
|
|
|
+ }
|
|
|
+ formatData(forms.studentItem);
|
|
|
} catch {
|
|
|
//
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ const formatData = (item: any) => {
|
|
|
+ studentInfo.nickname = item.nickname;
|
|
|
+ studentInfo.gender = item.gender;
|
|
|
+ const tempArea = [] as any;
|
|
|
+ if (item.provinceName) {
|
|
|
+ tempArea.push(item.provinceName);
|
|
|
+ }
|
|
|
+ if (item.cityName) {
|
|
|
+ tempArea.push(item.cityName);
|
|
|
+ }
|
|
|
+ if (item.regionName) {
|
|
|
+ tempArea.push(item.regionName);
|
|
|
+ }
|
|
|
+ studentInfo.areaName = tempArea.join(' ');
|
|
|
+
|
|
|
+ studentInfo.schoolName = item.schoolName;
|
|
|
+ studentInfo.currentGradeNum =
|
|
|
+ item.currentGradeNum + '年级' + item.currentClass + '班';
|
|
|
+ };
|
|
|
+
|
|
|
+ const onSubmit = async () => {
|
|
|
+ forms.submitLoading = true;
|
|
|
+ try {
|
|
|
+ const { data } = await request.post(
|
|
|
+ '/edu-app/open/instrumentRegister/instrumentUseRegister',
|
|
|
+ {
|
|
|
+ requestType: 'form',
|
|
|
+ data: {
|
|
|
+ activationCodeRecordId: forms.studentItem.activationCodeRecordId
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
+ forms.statusShow = true;
|
|
|
+ } catch {}
|
|
|
+ forms.submitLoading = false;
|
|
|
+ };
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
getDetail();
|
|
|
});
|
|
@@ -158,16 +214,12 @@ export default defineComponent({
|
|
|
autocomplete="off"
|
|
|
readonly
|
|
|
maxlength={14}
|
|
|
- v-model={studentInfo.extra.nickname}>
|
|
|
+ v-model={studentInfo.nickname}>
|
|
|
{{
|
|
|
extra: () =>
|
|
|
forms.studentList.length > 1 && (
|
|
|
<div
|
|
|
- class={[
|
|
|
- styles.selectStudentGroup,
|
|
|
- forms.showSelectStudent &&
|
|
|
- styles.selectStudentGroupChecked
|
|
|
- ]}
|
|
|
+ class={[styles.selectStudentGroup]}
|
|
|
onClick={() => (forms.showSelectStudent = true)}>
|
|
|
<span>切换学生</span>
|
|
|
</div>
|
|
@@ -185,19 +237,19 @@ export default defineComponent({
|
|
|
input: () => (
|
|
|
<RadioGroup
|
|
|
checked-color="linear-gradient( 135deg, #31C7FF 0%, #007AFE 100%)"
|
|
|
- v-model={studentInfo.extra.gender}
|
|
|
+ v-model={studentInfo.gender}
|
|
|
direction="horizontal"
|
|
|
disabled>
|
|
|
<Tag
|
|
|
size="large"
|
|
|
type="primary"
|
|
|
color={
|
|
|
- !(studentInfo.extra.gender === 1)
|
|
|
+ !(studentInfo.gender === 1)
|
|
|
? '#F5F6FA'
|
|
|
: 'linear-gradient( 135deg, #31C7FF 0%, #007AFE 100%)'
|
|
|
}
|
|
|
textColor={
|
|
|
- !(studentInfo.extra.gender === 1) ? '#626264' : '#fff'
|
|
|
+ !(studentInfo.gender === 1) ? '#626264' : '#fff'
|
|
|
}
|
|
|
class={styles.radioSection}>
|
|
|
<Radio class={styles.radioItem} name={1}></Radio>男
|
|
@@ -206,12 +258,12 @@ export default defineComponent({
|
|
|
size="large"
|
|
|
type="primary"
|
|
|
color={
|
|
|
- !(studentInfo.extra.gender === 0)
|
|
|
+ !(studentInfo.gender === 0)
|
|
|
? '#F5F6FA'
|
|
|
: 'linear-gradient( 135deg, #31C7FF 0%, #007AFE 100%)'
|
|
|
}
|
|
|
textColor={
|
|
|
- !(studentInfo.extra.gender === 0) ? '#626264' : '#fff'
|
|
|
+ !(studentInfo.gender === 0) ? '#626264' : '#fff'
|
|
|
}
|
|
|
class={styles.radioSection}>
|
|
|
<Radio class={styles.radioItem} name={0}></Radio>女
|
|
@@ -228,13 +280,7 @@ export default defineComponent({
|
|
|
placeholder="请选择地区"
|
|
|
readonly
|
|
|
clickable={false}
|
|
|
- // modelValue={forms.gradeNumText}
|
|
|
- // onClick={() => {
|
|
|
- // if (forms.isRegister !== 'update') {
|
|
|
- // forms.gradePopupIndex = [studentInfo.extra.currentGradeNum];
|
|
|
- // forms.gradeStatus = true;
|
|
|
- // }
|
|
|
- // }}
|
|
|
+ modelValue={studentInfo.areaName}
|
|
|
/>
|
|
|
<Field
|
|
|
clearable={false}
|
|
@@ -244,7 +290,7 @@ export default defineComponent({
|
|
|
placeholder="请选择互通学校"
|
|
|
readonly
|
|
|
clickable={false}
|
|
|
- // modelValue={forms.gradeNumText}
|
|
|
+ modelValue={studentInfo.schoolName}
|
|
|
/>
|
|
|
<Field
|
|
|
clearable={false}
|
|
@@ -254,7 +300,7 @@ export default defineComponent({
|
|
|
placeholder="请选择班级"
|
|
|
readonly
|
|
|
clickable={false}
|
|
|
- // modelValue={forms.currentClassText}
|
|
|
+ modelValue={studentInfo.currentGradeNum}
|
|
|
/>
|
|
|
</Form>
|
|
|
</div>
|
|
@@ -263,7 +309,7 @@ export default defineComponent({
|
|
|
<div class={styles.paymentContainer}>
|
|
|
<Button
|
|
|
onClick={() => {
|
|
|
- // onSubmit();
|
|
|
+ onSubmit();
|
|
|
// if (checkForm() || checkSubmit()) {
|
|
|
// forms.submitLoading = false;
|
|
|
// return;
|
|
@@ -272,9 +318,13 @@ export default defineComponent({
|
|
|
}}
|
|
|
round
|
|
|
block
|
|
|
- disabled={forms.submitLoading}
|
|
|
+ disabled={
|
|
|
+ forms.submitLoading ||
|
|
|
+ forms.registerAllFlag ||
|
|
|
+ forms.studentItem.registerFlag
|
|
|
+ }
|
|
|
loading={forms.submitLoading}>
|
|
|
- 登记
|
|
|
+ {btnText.value}
|
|
|
</Button>
|
|
|
</div>
|
|
|
</MSticky>
|
|
@@ -287,10 +337,15 @@ export default defineComponent({
|
|
|
safeAreaInsetBottom
|
|
|
closeable>
|
|
|
<SelectStudent
|
|
|
+ showAdd={false}
|
|
|
studentItem={forms.studentItem}
|
|
|
list={forms.studentList}
|
|
|
onClose={() => (forms.showSelectStudent = false)}
|
|
|
- onConfirm={(val: any) => {}}
|
|
|
+ onConfirm={(val: any) => {
|
|
|
+ console.log(val, 'val');
|
|
|
+ formatData(val);
|
|
|
+ forms.studentItem = val;
|
|
|
+ }}
|
|
|
/>
|
|
|
</Popup>
|
|
|
|
|
@@ -304,13 +359,23 @@ export default defineComponent({
|
|
|
<img class={styles.title} src={loginSuccess} />
|
|
|
|
|
|
<div class={styles.content}>
|
|
|
- <span>李木子</span>已登记成功,乐器将在开课时发至学生
|
|
|
+ <span>{forms.studentItem.nickname}</span>
|
|
|
+ 已登记成功,乐器将在开课时发至学生
|
|
|
</div>
|
|
|
<div class={styles.pBtnGroup}>
|
|
|
<Button
|
|
|
round
|
|
|
block
|
|
|
- onClick={() => (forms.statusShow = false)}
|
|
|
+ onClick={() => {
|
|
|
+ forms.statusShow = false;
|
|
|
+ forms.studentItem.registerFlag = true;
|
|
|
+
|
|
|
+ forms.studentList.forEach((item: any) => {
|
|
|
+ if (item.userId === forms.studentItem?.userId) {
|
|
|
+ item.registerFlag = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }}
|
|
|
color="linear-gradient( 305deg, #40C8FF 0%, #3192FF 100%)">
|
|
|
我知道了
|
|
|
</Button>
|