|
@@ -144,74 +144,75 @@ export default defineComponent({
|
|
|
}
|
|
|
return () => (
|
|
|
<>
|
|
|
- <div class={styles.topWrap}>
|
|
|
- <OSticky position="top" background="#F8F8F8" onGetHeight={getHeight}>
|
|
|
- <OHeader
|
|
|
- border={false}
|
|
|
- background={state.heightV > state.scrollTop ? 'transparent' : '#fff'}
|
|
|
- >
|
|
|
- {{
|
|
|
- right: () => (
|
|
|
- <Icon
|
|
|
- name={questIcon}
|
|
|
- size={22}
|
|
|
- color="#333"
|
|
|
- onClick={() => {
|
|
|
- showTip.value = true
|
|
|
- }}
|
|
|
+ <div class={styles.exercisContainer}>
|
|
|
+ <div class={styles.topWrap}>
|
|
|
+ <OSticky position="top" background="#F8F8F8" onGetHeight={getHeight}>
|
|
|
+ <OHeader
|
|
|
+ border={false}
|
|
|
+ background={state.heightV > state.scrollTop ? 'transparent' : '#fff'}
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ right: () => (
|
|
|
+ <Icon
|
|
|
+ name={questIcon}
|
|
|
+ size={22}
|
|
|
+ color="#333"
|
|
|
+ onClick={() => {
|
|
|
+ showTip.value = true
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </OHeader>
|
|
|
+ </OSticky>
|
|
|
+ <div class={styles.topInfo}>
|
|
|
+ <div class={styles.topInfoLeft}>
|
|
|
+ <div class={styles.headWrap}>
|
|
|
+ <Image
|
|
|
+ src={infoDetail.value.avatar ? infoDetail.value.avatar : defaultIcon}
|
|
|
+ fit="cover"
|
|
|
+ width="68px"
|
|
|
+ height="68px"
|
|
|
/>
|
|
|
- )
|
|
|
- }}
|
|
|
- </OHeader>
|
|
|
- </OSticky>
|
|
|
- <div class={styles.topInfo}>
|
|
|
- <div class={styles.topInfoLeft}>
|
|
|
- <div class={styles.headWrap}>
|
|
|
- <Image
|
|
|
- src={infoDetail.value.avatar ? infoDetail.value.avatar : defaultIcon}
|
|
|
- fit="cover"
|
|
|
- width="68px"
|
|
|
- height="68px"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class={styles.infoMsg}>
|
|
|
- <p>{infoDetail.value.nickname}</p>
|
|
|
- <div class={styles.tag}>
|
|
|
- {infoDetail.value.subjectNames ? infoDetail.value.subjectNames : '暂无声部'}
|
|
|
+ </div>
|
|
|
+ <div class={styles.infoMsg}>
|
|
|
+ <p>{infoDetail.value.nickname}</p>
|
|
|
+ <div class={styles.tag}>
|
|
|
+ {infoDetail.value.subjectNames ? infoDetail.value.subjectNames : '暂无声部'}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class={styles.topInfoRight}>
|
|
|
- <div class={styles.infoDay}>
|
|
|
- <p class={styles.infoDayMain}>
|
|
|
- {infoDetail.value.practiceDays ? infoDetail.value.practiceDays : 0}{' '}
|
|
|
- <span>天</span>
|
|
|
- </p>
|
|
|
- <p class={styles.infoDaysub}>练习天数</p>
|
|
|
- </div>
|
|
|
- <div class={styles.infoTime}>
|
|
|
- <p class={styles.infoDayMain}>
|
|
|
- {infoDetail.value.practiceTimes ? infoDetail.value.practiceTimes : 0}{' '}
|
|
|
- <span>分钟</span>
|
|
|
- </p>
|
|
|
- <p class={styles.infoDaysub}>练习时长</p>
|
|
|
+ <div class={styles.topInfoRight}>
|
|
|
+ <div class={styles.infoDay}>
|
|
|
+ <p class={styles.infoDayMain}>
|
|
|
+ {infoDetail.value.practiceDays ? infoDetail.value.practiceDays : 0}{' '}
|
|
|
+ <span>天</span>
|
|
|
+ </p>
|
|
|
+ <p class={styles.infoDaysub}>练习天数</p>
|
|
|
+ </div>
|
|
|
+ <div class={styles.infoTime}>
|
|
|
+ <p class={styles.infoDayMain}>
|
|
|
+ {infoDetail.value.practiceTimes ? infoDetail.value.practiceTimes : 0}{' '}
|
|
|
+ <span>分钟</span>
|
|
|
+ </p>
|
|
|
+ <p class={styles.infoDaysub}>练习时长</p>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class={styles.chioseWrap}>
|
|
|
- <div style={{ padding: '12px 13px', background: 'transparent' }}>
|
|
|
- <div
|
|
|
- class={styles.searchBand}
|
|
|
- onClick={() => {
|
|
|
- state.showPopoverTime = true
|
|
|
- }}
|
|
|
- >
|
|
|
- {forms.practiceMonthName}
|
|
|
- <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
|
|
|
+ <div class={styles.chioseWrap}>
|
|
|
+ <div style={{ padding: '12px 13px', background: 'transparent' }}>
|
|
|
+ <div
|
|
|
+ class={styles.searchBand}
|
|
|
+ onClick={() => {
|
|
|
+ state.showPopoverTime = true
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {forms.practiceMonthName}
|
|
|
+ <Icon name={state.showPopoverTime ? 'arrow-up' : 'arrow-down'} />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
- {/* <div style={{ padding: '12px 13px', background: 'transparent' }}>
|
|
|
+ {/* <div style={{ padding: '12px 13px', background: 'transparent' }}>
|
|
|
<Popover
|
|
|
v-model:show={state.showPopoverOrchestra}
|
|
|
actions={state.actions}
|
|
@@ -229,24 +230,29 @@ export default defineComponent({
|
|
|
}}
|
|
|
</Popover>
|
|
|
</div> */}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- {showContact.value ? (
|
|
|
- <PullRefresh v-model={refreshing.value} onRefresh={onRefresh} style="min-height: 100vh;">
|
|
|
- <List
|
|
|
- v-model:loading={loading.value}
|
|
|
- finished={finished.value}
|
|
|
- finished-text="没有更多了"
|
|
|
- onLoad={getList}
|
|
|
+ {showContact.value ? (
|
|
|
+ <PullRefresh
|
|
|
+ v-model={refreshing.value}
|
|
|
+ onRefresh={onRefresh}
|
|
|
+ style="min-height: 100vh;"
|
|
|
>
|
|
|
- {list.value.map((item: any) => (
|
|
|
- <DetailItem item={item} />
|
|
|
- ))}
|
|
|
- </List>
|
|
|
- </PullRefresh>
|
|
|
- ) : (
|
|
|
- <OEmpty />
|
|
|
- )}
|
|
|
+ <List
|
|
|
+ v-model:loading={loading.value}
|
|
|
+ finished={finished.value}
|
|
|
+ finished-text="没有更多了"
|
|
|
+ onLoad={getList}
|
|
|
+ >
|
|
|
+ {list.value.map((item: any) => (
|
|
|
+ <DetailItem item={item} />
|
|
|
+ ))}
|
|
|
+ </List>
|
|
|
+ </PullRefresh>
|
|
|
+ ) : (
|
|
|
+ <OEmpty />
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
|
|
|
<Popup v-model:show={state.showPopoverTime} position="bottom" style="{ height: '30%' }">
|
|
|
<DatePicker
|