1.添加文章标题和创建时间

2.未登录情况下显示我的页面功能区应用
v2
xing 1 year ago
parent ae57654a46
commit 4d2b83b950
  1. 11
      src/components/learningRecord/learningRecord.tsx
  2. 6
      src/components/spinner/index.tsx
  3. 7
      src/pages/my/my.tsx
  4. 2
      src/pages/preview/brand/article/article.tsx
  5. 58
      src/pages/preview/illness/article/article.tsx

@ -6,6 +6,8 @@ import {FC, useEffect, useState} from "react";
import {StatisticsParam, userApi} from "@/api";
import styles from './learningRecord.module.scss'
import Spin from "@/components/spinner";
import {Profile} from "@/store";
import Taro from "@tarojs/taro";
const tabList: TabList<any>[] = [
{
@ -30,7 +32,7 @@ const tabList: TabList<any>[] = [
]
interface Props {
userId: string | number
userId?: string | number
}
@ -40,9 +42,10 @@ interface Props {
const LearningRecord: FC<Props> = ({userId}) => {
const [lineData, setLineData] = useState<any[]>([])
const [loading, setLoading] = useState(false)
const {token} = Profile.useContainer()
async function getStatistics(data: StatisticsParam) {
if (!userId) return;
try {
setLoading(true)
const res = await userApi.statistics(userId, data)
@ -55,6 +58,10 @@ const LearningRecord: FC<Props> = ({userId}) => {
}
function tabChange({tab}: OnChangOpt<StatisticsParam>) {
if (!token) {
Taro.navigateTo({url: '/pages/login/login'})
return
}
getStatistics(tab?.value! as StatisticsParam)
}

@ -138,9 +138,9 @@ export default class Spin extends Component<Props, State> {
this.setState((s) => ({...s, ...state}))
}
// componentDidMount(): void {
// this.controller.setTick(this.props.enable)
// }
componentDidMount(): void {
this.controller.setTick(this.props.enable)
}
componentDidUpdate(): void {
this.controller.setTick(this.props.enable)

@ -84,12 +84,11 @@ const My: FC = () => {
</View>
<Time/>
{
token && user && <View>
<LearningRecord userId={user.id}/>
<View>
<LearningRecord userId={user?.id}/>
<Service/>
</View>
}
<PageContainer
overlayStyle={'background:rgba(0,0,0,0.3)'}
position='bottom'

@ -25,11 +25,9 @@ const article: FC = () => {
const query = Taro.createSelectorQuery()
query.select('#childrenNode').boundingClientRect((res) => {
if (!Array.isArray(res)) {
if (res.height !== 240) {
console.log({childrenNode: res})
setUltra(pageHeight * .45 <= res.height)
}
}
}).exec()
}, 300)
}, [children])

@ -6,56 +6,64 @@ import styles from './article.module.scss'
import down from '@/static/img/doubleDown.png'
import {Profile} from "@/store";
import {parse} from "@/utils/marked/marked";
import {formatDate} from "@/utils/time";
const article:FC = () => {
const article: FC = () => {
const {token} = Profile.useContainer()
const {id} = useRouter().params as unknown as { id: number}
const [show,setShow] = useState(false)
const [articleInfo,setArticleInfo] = useState<ArticleRecord>()
const { children, headings } = useMemo(() => parse(articleInfo?.content || ''), [articleInfo])
const {id} = useRouter().params as unknown as { id: number }
const [show, setShow] = useState(false)
const [articleInfo, setArticleInfo] = useState<ArticleRecord>()
const {children, headings} = useMemo(() => parse(articleInfo?.content || ''), [articleInfo])
const query = Taro.createSelectorQuery()
useEffect(() => {
getData()
}, [id])
const getData = async () => {
Taro.setNavigationBarTitle({title:'疾病文章详情'})
Taro.setNavigationBarTitle({title: '疾病文章详情'})
try {
const data = await brandApi.articleInfo(id)
Taro.setNavigationBarTitle({title:data.title})
Taro.setNavigationBarTitle({title: data.title})
setArticleInfo(data)
} catch (e) {
}
}
function mao(id: string){
function mao(id: string) {
console.log(id)
setShow(false)
Taro.nextTick(() => {
query.select(`#${id}`).boundingClientRect()
query.exec((res) => {
if(res.length){
if (res.length) {
Taro.pageScrollTo({
scrollTop: res[res.length-1].top,
duration: 300}
scrollTop: res[res.length - 1].top,
duration: 300
}
)
}
})
})
}
function helloWorld() {
return (
<>
{/*<View style={{padding:'10px'}}>*/}
{/* { children }*/}
{/*</View>*/}
<View className={styles.botmBox} style={{display:show?'none':'flex'}} onClick={()=>{setShow(true)}}>
<View className={styles.botmBox} style={{display: show ? 'none' : 'flex'}} onClick={() => setShow(true)}>
<View></View>
</View>
<View style={{padding:'10px',height:!token ? Taro.getWindowInfo().windowHeight-60+'px' : 'auto',overflow:!token ? 'hidden':'auto'}}>
{ children }
<View style={{
padding: '10px',
height: !token ? Taro.getWindowInfo().windowHeight - 60 + 'px' : 'auto',
overflow: !token ? 'hidden' : 'auto'
}}>
<View className='text-center'>
<View className='font-50 font-weight '>{articleInfo?.title}</View>
<View className='mt-2'>{formatDate(new Date(articleInfo?.created_at || 0), "YY-mm-dd hh:mm:dd")}</View>
</View>
<View></View>
{children}
</View>
{
!token &&
@ -64,18 +72,23 @@ const article:FC = () => {
<View className={styles['fixedBox-inner-icon']}>
<Image src={down}></Image>
</View>
<View className={styles['fixedBox-inner-box']} onClick={ ()=> Taro.navigateTo({url: '/pages/login/login'})}>
<View className={styles['fixedBox-inner-box']}
onClick={() => Taro.navigateTo({url: '/pages/login/login'})}>
<Text></Text>
</View>
</View>
</View>
}
<PageContainer onClickOverlay={()=>{ setShow(false)}} show={show} round={true} overlay={true} overlayStyle={'background:rgba(0,0,0,0.3)'} >
<PageContainer onClickOverlay={() => {
setShow(false)
}} show={show} round={true} overlay={true} overlayStyle={'background:rgba(0,0,0,0.3)'}>
<View className="px-3 py-5">
{headings.length > 0 &&
headings.map((d) =>
<View className="pb-3" style={{fontSize:'28rpx',fontWeight: '500',color: '#323635'}} onClick={()=>{mao(d.id)}}>{d.text}</View>
<View className="pb-3" style={{fontSize: '28rpx', fontWeight: '500', color: '#323635'}} onClick={() => {
mao(d.id)
}}>{d.text}</View>
)
}
</View>
@ -84,6 +97,7 @@ const article:FC = () => {
</>
)
}
return helloWorld()
}
export default article

Loading…
Cancel
Save