|
@@ -223,6 +223,23 @@ export default defineComponent({
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ // 判断是否为退团重新报名逻辑
|
|
|
+ if (state.registerInfo.hasBuyCourse) {
|
|
|
+ await request.post('/api-student/orchestraRegister/learningStudent', {
|
|
|
+ data: {
|
|
|
+ orchestraId: route.query.id
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ router.push({
|
|
|
+ path: '/preGoodsSuccess',
|
|
|
+ query: {
|
|
|
+ t: 'pay'
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
if (forms.groupBuyType === 'SELF') {
|
|
|
router.push({
|
|
|
path: '/preGoodsSuccess'
|
|
@@ -237,6 +254,11 @@ export default defineComponent({
|
|
|
// 乐团报名
|
|
|
const onSubmit = async () => {
|
|
|
try {
|
|
|
+ // 判断是否在购买VIP
|
|
|
+ if (state.registerInfo.hasBuyCourse) {
|
|
|
+ await onRegisterUser()
|
|
|
+ return
|
|
|
+ }
|
|
|
if (forms.groupBuyType === 'SELF') {
|
|
|
state.submitStatus = true
|
|
|
return
|
|
@@ -741,65 +763,83 @@ export default defineComponent({
|
|
|
</Field>
|
|
|
</CellGroup>
|
|
|
|
|
|
- {forms.groupBuyType === 'GROUP_BUY' && (
|
|
|
+ {state.registerInfo.hasBuyCourse ? (
|
|
|
+ <div class={'btnGroup'} style={{ paddingTop: '30px' }}>
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ color="linear-gradient(135deg, #FF8C4A 0%, #FF531C 100%)"
|
|
|
+ round
|
|
|
+ block
|
|
|
+ native-type="submit"
|
|
|
+ >
|
|
|
+ 提交
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ ) : (
|
|
|
<>
|
|
|
- <CellGroup class={[styles.applyCellGroup, styles.groupBuy]} border={false}>
|
|
|
- <div class={[styles.title, styles.titleIntrumentTool]}></div>
|
|
|
- <Cell border={false}>
|
|
|
- {{
|
|
|
- icon: () => <Image src={state.vipYearInfo.goodsUrl} class={styles.goodsImg} />,
|
|
|
- value: () => (
|
|
|
- <div class={styles.vipYearInfo}>
|
|
|
- <div class={styles.goodsTitle}>
|
|
|
- {state.vipYearInfo.goodsName} <img src={icon12} />
|
|
|
- </div>
|
|
|
- <p class={styles.goodsTips}>乐团首次训练之日起生效</p>
|
|
|
- <p class={[styles.goodsMemo, 'van-multi-ellipsis--l2']}>
|
|
|
- {state.vipYearInfo.description}
|
|
|
- </p>
|
|
|
- <div class={styles.goodsPrice}>
|
|
|
- <div class={styles.priceGroup}>
|
|
|
- 团购价:
|
|
|
- <p>
|
|
|
- <span>¥</span> {moneyFormat(state.vipYearInfo.currentPrice)}
|
|
|
+ {forms.groupBuyType === 'GROUP_BUY' && (
|
|
|
+ <>
|
|
|
+ <CellGroup class={[styles.applyCellGroup, styles.groupBuy]} border={false}>
|
|
|
+ <div class={[styles.title, styles.titleIntrumentTool]}></div>
|
|
|
+ <Cell border={false}>
|
|
|
+ {{
|
|
|
+ icon: () => (
|
|
|
+ <Image src={state.vipYearInfo.goodsUrl} class={styles.goodsImg} />
|
|
|
+ ),
|
|
|
+ value: () => (
|
|
|
+ <div class={styles.vipYearInfo}>
|
|
|
+ <div class={styles.goodsTitle}>
|
|
|
+ {state.vipYearInfo.goodsName} <img src={icon12} />
|
|
|
+ </div>
|
|
|
+ <p class={styles.goodsTips}>乐团首次训练之日起生效</p>
|
|
|
+ <p class={[styles.goodsMemo, 'van-multi-ellipsis--l2']}>
|
|
|
+ {state.vipYearInfo.description}
|
|
|
</p>
|
|
|
- </div>
|
|
|
- {/* <del class={styles.priceOrigin}>
|
|
|
+ <div class={styles.goodsPrice}>
|
|
|
+ <div class={styles.priceGroup}>
|
|
|
+ 团购价:
|
|
|
+ <p>
|
|
|
+ <span>¥</span> {moneyFormat(state.vipYearInfo.currentPrice)}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ {/* <del class={styles.priceOrigin}>
|
|
|
原价: ¥{moneyFormat(state.vipYearInfo.originalPrice)}
|
|
|
</del> */}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- )
|
|
|
- }}
|
|
|
- </Cell>
|
|
|
- <Cell border={false}>
|
|
|
- {{
|
|
|
- icon: () => <Image src={state.goodsInfo.goodsUrl} class={styles.goodsImg} />,
|
|
|
- value: () => (
|
|
|
- <div class={styles.goodsInfo}>
|
|
|
- <div class={styles.goodsTitle}>
|
|
|
- {state.goodsInfo.goodsName}
|
|
|
- {state.goodsInfo.currentPrice <= 0 ? <img src={iconFree} /> : ''}
|
|
|
- </div>
|
|
|
- <p class={[styles.goodsMemo, 'van-multi-ellipsis--l2']}>
|
|
|
- {state.goodsInfo.description}
|
|
|
- </p>
|
|
|
- <div class={styles.goodsPrice}>
|
|
|
- <div class={styles.priceGroup}>
|
|
|
- 团购价:
|
|
|
- <p>
|
|
|
- {state.goodsInfo.currentPrice <= 0 ? (
|
|
|
- <del>
|
|
|
- <span>¥</span> {moneyFormat(state.goodsInfo.groupPrice)}
|
|
|
- </del>
|
|
|
- ) : (
|
|
|
- <>
|
|
|
- <span>¥</span> {moneyFormat(state.goodsInfo.currentPrice)}
|
|
|
- </>
|
|
|
- )}
|
|
|
- </p>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- {/* {state.goodsInfo.currentPrice > 0 ? (
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </Cell>
|
|
|
+ <Cell border={false}>
|
|
|
+ {{
|
|
|
+ icon: () => (
|
|
|
+ <Image src={state.goodsInfo.goodsUrl} class={styles.goodsImg} />
|
|
|
+ ),
|
|
|
+ value: () => (
|
|
|
+ <div class={styles.goodsInfo}>
|
|
|
+ <div class={styles.goodsTitle}>
|
|
|
+ {state.goodsInfo.goodsName}
|
|
|
+ {state.goodsInfo.currentPrice <= 0 ? <img src={iconFree} /> : ''}
|
|
|
+ </div>
|
|
|
+ <p class={[styles.goodsMemo, 'van-multi-ellipsis--l2']}>
|
|
|
+ {state.goodsInfo.description}
|
|
|
+ </p>
|
|
|
+ <div class={styles.goodsPrice}>
|
|
|
+ <div class={styles.priceGroup}>
|
|
|
+ 团购价:
|
|
|
+ <p>
|
|
|
+ {state.goodsInfo.currentPrice <= 0 ? (
|
|
|
+ <del>
|
|
|
+ <span>¥</span> {moneyFormat(state.goodsInfo.groupPrice)}
|
|
|
+ </del>
|
|
|
+ ) : (
|
|
|
+ <>
|
|
|
+ <span>¥</span> {moneyFormat(state.goodsInfo.currentPrice)}
|
|
|
+ </>
|
|
|
+ )}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ {/* {state.goodsInfo.currentPrice > 0 ? (
|
|
|
<>
|
|
|
<div class={styles.priceGroup}>
|
|
|
团购价:
|
|
@@ -822,154 +862,158 @@ export default defineComponent({
|
|
|
</div>
|
|
|
</>
|
|
|
)} */}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- )
|
|
|
- }}
|
|
|
- </Cell>
|
|
|
-
|
|
|
- {otherParams.leBao.show ? (
|
|
|
- <Cell
|
|
|
- class={styles.inspectCell}
|
|
|
- style={{ backgroundColor: state.inspectStatus ? '#FFF3EA' : '#f4f4f4' }}
|
|
|
- >
|
|
|
- {{
|
|
|
- icon: () => (
|
|
|
- <img
|
|
|
- src={iconBao}
|
|
|
- class={styles.iconBao}
|
|
|
- onClick={() => {
|
|
|
- if (state.instrumentsInspectionDescribe) state.inspectPopupStatus = true
|
|
|
- }}
|
|
|
- />
|
|
|
- ),
|
|
|
- value: () => (
|
|
|
- <div class={styles.baoContainer}>
|
|
|
- <div
|
|
|
- class={styles.baoTitle}
|
|
|
- onClick={() => {
|
|
|
- if (state.instrumentsInspectionDescribe)
|
|
|
- state.inspectPopupStatus = true
|
|
|
- }}
|
|
|
- >
|
|
|
- 下校检查乐器 1-2次/学期
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class={styles.baoPrice}>
|
|
|
- <p
|
|
|
- onClick={() => {
|
|
|
- state.inspectStatus = !state.inspectStatus
|
|
|
- calcPrice()
|
|
|
- }}
|
|
|
- >
|
|
|
- <span class={styles.prefix}>¥</span> {state.inspectInfo.currentPrice}
|
|
|
- <span class={styles.suffix}>/年</span>
|
|
|
- </p>
|
|
|
- <Checkbox
|
|
|
- v-model={state.inspectStatus}
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </Cell>
|
|
|
+
|
|
|
+ {otherParams.leBao.show ? (
|
|
|
+ <Cell
|
|
|
+ class={styles.inspectCell}
|
|
|
+ style={{ backgroundColor: state.inspectStatus ? '#FFF3EA' : '#f4f4f4' }}
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ icon: () => (
|
|
|
+ <img
|
|
|
+ src={iconBao}
|
|
|
+ class={styles.iconBao}
|
|
|
onClick={() => {
|
|
|
- calcPrice()
|
|
|
+ if (state.instrumentsInspectionDescribe)
|
|
|
+ state.inspectPopupStatus = true
|
|
|
}}
|
|
|
- >
|
|
|
- {{
|
|
|
- icon: (props: any) => (
|
|
|
- <img
|
|
|
- class={styles.checkboxImg}
|
|
|
- src={props.checked ? iconCheckboxActive : iconCheckbox}
|
|
|
- />
|
|
|
- )
|
|
|
- }}
|
|
|
- </Checkbox>
|
|
|
- </div>
|
|
|
+ />
|
|
|
+ ),
|
|
|
+ value: () => (
|
|
|
+ <div class={styles.baoContainer}>
|
|
|
+ <div
|
|
|
+ class={styles.baoTitle}
|
|
|
+ onClick={() => {
|
|
|
+ if (state.instrumentsInspectionDescribe)
|
|
|
+ state.inspectPopupStatus = true
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 下校检查乐器 1-2次/学期
|
|
|
+ </div>
|
|
|
+ <div class={styles.baoPrice}>
|
|
|
+ <p
|
|
|
+ onClick={() => {
|
|
|
+ state.inspectStatus = !state.inspectStatus
|
|
|
+ calcPrice()
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <span class={styles.prefix}>¥</span>{' '}
|
|
|
+ {state.inspectInfo.currentPrice}
|
|
|
+ <span class={styles.suffix}>/年</span>
|
|
|
+ </p>
|
|
|
+ <Checkbox
|
|
|
+ v-model={state.inspectStatus}
|
|
|
+ onClick={() => {
|
|
|
+ calcPrice()
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ icon: (props: any) => (
|
|
|
+ <img
|
|
|
+ class={styles.checkboxImg}
|
|
|
+ src={props.checked ? iconCheckboxActive : iconCheckbox}
|
|
|
+ />
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </Checkbox>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </Cell>
|
|
|
+ ) : (
|
|
|
+ ''
|
|
|
+ )}
|
|
|
+ </CellGroup>
|
|
|
+ <OSticky position="bottom">
|
|
|
+ <div class={styles.paymentContainer}>
|
|
|
+ <div class={styles.payemntPrice}>
|
|
|
+ <p class={styles.needPrice}>
|
|
|
+ 总计:
|
|
|
+ <span class={styles.numFont}>
|
|
|
+ <span>¥ </span>
|
|
|
+
|
|
|
+ {moneyFormat(state.orderInfo.needPrice)}
|
|
|
+ </span>
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ <div class={styles.paymentBtn}>
|
|
|
+ <Button
|
|
|
+ color="linear-gradient(135deg, #FF8C4A 0%, #FF531C 100%)"
|
|
|
+ round
|
|
|
+ native-type="submit"
|
|
|
+ >
|
|
|
+ 团购支付
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </OSticky>
|
|
|
+ </>
|
|
|
+ )}
|
|
|
+
|
|
|
+ {forms.groupBuyType === 'SELF' && (
|
|
|
+ <>
|
|
|
+ <CellGroup class={[styles.applyCellGroup, styles.self]} border={false}>
|
|
|
+ <div
|
|
|
+ class={styles.toolImg}
|
|
|
+ onClick={() => {
|
|
|
+ showImagePreview([state.registerInfo?.instrumentPriceImg])
|
|
|
+ localStorage.setItem('read-tool-image', '1')
|
|
|
+ state.toolImgStatus = true
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <Image src={state.registerInfo?.instrumentPriceImg} />
|
|
|
+
|
|
|
+ {!state.toolImgStatus && (
|
|
|
+ <div class={styles.toolImgOverflow}>
|
|
|
+ <Button>点击查看《乐团训练工具标准配置表》</Button>
|
|
|
+ <img src={iconHead} class={styles.iconHead} />
|
|
|
</div>
|
|
|
- )
|
|
|
- }}
|
|
|
- </Cell>
|
|
|
- ) : (
|
|
|
- ''
|
|
|
- )}
|
|
|
- </CellGroup>
|
|
|
- <OSticky position="bottom">
|
|
|
- <div class={styles.paymentContainer}>
|
|
|
- <div class={styles.payemntPrice}>
|
|
|
- <p class={styles.needPrice}>
|
|
|
- 总计:
|
|
|
- <span class={styles.numFont}>
|
|
|
- <span>¥ </span>
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
+ <Field
|
|
|
+ required
|
|
|
+ label="您计划配置的乐器品牌"
|
|
|
+ labelAlign="top"
|
|
|
+ border={false}
|
|
|
+ placeholder="请填写您计划配置的乐器品牌"
|
|
|
+ v-model={forms.instrumentsBrand}
|
|
|
+ maxlength={20}
|
|
|
+ class={styles.toolInput}
|
|
|
+ rules={[{ required: true, message: '请填写您计划配置的乐器品牌' }]}
|
|
|
+ />
|
|
|
+ <Field
|
|
|
+ style="padding-top: 0;"
|
|
|
+ required
|
|
|
+ label="您计划配置的AI学练工具品牌"
|
|
|
+ labelAlign="top"
|
|
|
+ border={false}
|
|
|
+ class={styles.toolInput}
|
|
|
+ placeholder="请填写您计划配置的AI学练工具品牌"
|
|
|
+ v-model={forms.learningTools}
|
|
|
+ maxlength={20}
|
|
|
+ rules={[{ required: true, message: '请填写您计划配置的AI学练工具品牌' }]}
|
|
|
+ />
|
|
|
+ </CellGroup>
|
|
|
|
|
|
- {moneyFormat(state.orderInfo.needPrice)}
|
|
|
- </span>
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- <div class={styles.paymentBtn}>
|
|
|
+ <div class={'btnGroup'} style={{ paddingTop: '30px' }}>
|
|
|
<Button
|
|
|
+ type="primary"
|
|
|
color="linear-gradient(135deg, #FF8C4A 0%, #FF531C 100%)"
|
|
|
round
|
|
|
+ block
|
|
|
native-type="submit"
|
|
|
>
|
|
|
- 团购支付
|
|
|
+ 提交
|
|
|
</Button>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </OSticky>
|
|
|
- </>
|
|
|
- )}
|
|
|
-
|
|
|
- {forms.groupBuyType === 'SELF' && (
|
|
|
- <>
|
|
|
- <CellGroup class={[styles.applyCellGroup, styles.self]} border={false}>
|
|
|
- <div
|
|
|
- class={styles.toolImg}
|
|
|
- onClick={() => {
|
|
|
- showImagePreview([state.registerInfo?.instrumentPriceImg])
|
|
|
- localStorage.setItem('read-tool-image', '1')
|
|
|
- state.toolImgStatus = true
|
|
|
- }}
|
|
|
- >
|
|
|
- <Image src={state.registerInfo?.instrumentPriceImg} />
|
|
|
-
|
|
|
- {!state.toolImgStatus && (
|
|
|
- <div class={styles.toolImgOverflow}>
|
|
|
- <Button>点击查看《乐团训练工具标准配置表》</Button>
|
|
|
- <img src={iconHead} class={styles.iconHead} />
|
|
|
- </div>
|
|
|
- )}
|
|
|
- </div>
|
|
|
- <Field
|
|
|
- required
|
|
|
- label="您计划配置的乐器品牌"
|
|
|
- labelAlign="top"
|
|
|
- border={false}
|
|
|
- placeholder="请填写您计划配置的乐器品牌"
|
|
|
- v-model={forms.instrumentsBrand}
|
|
|
- maxlength={20}
|
|
|
- class={styles.toolInput}
|
|
|
- rules={[{ required: true, message: '请填写您计划配置的乐器品牌' }]}
|
|
|
- />
|
|
|
- <Field
|
|
|
- style="padding-top: 0;"
|
|
|
- required
|
|
|
- label="您计划配置的AI学练工具品牌"
|
|
|
- labelAlign="top"
|
|
|
- border={false}
|
|
|
- class={styles.toolInput}
|
|
|
- placeholder="请填写您计划配置的AI学练工具品牌"
|
|
|
- v-model={forms.learningTools}
|
|
|
- maxlength={20}
|
|
|
- rules={[{ required: true, message: '请填写您计划配置的AI学练工具品牌' }]}
|
|
|
- />
|
|
|
- </CellGroup>
|
|
|
-
|
|
|
- <div class={'btnGroup'} style={{ paddingTop: '30px' }}>
|
|
|
- <Button
|
|
|
- type="primary"
|
|
|
- color="linear-gradient(135deg, #FF8C4A 0%, #FF531C 100%)"
|
|
|
- round
|
|
|
- block
|
|
|
- native-type="submit"
|
|
|
- >
|
|
|
- 提交
|
|
|
- </Button>
|
|
|
- </div>
|
|
|
+ </>
|
|
|
+ )}
|
|
|
</>
|
|
|
)}
|
|
|
</Form>
|