Compare commits

...

2 Commits

Author SHA1 Message Date
FrozenArcher 08401dd64d add global plain text to main page 2024-03-06 00:02:41 +08:00
FrozenArcher a9d9415def add global plain text 2024-03-06 00:02:00 +08:00
5 changed files with 105 additions and 24 deletions

View File

@ -1,11 +1,16 @@
import { View } from '@tarojs/components';
import { AtDivider } from 'taro-ui';
import pt from '@/plain-text';
export default () => {
const blankHeight = 120;
return (
<View>
<AtDivider content='EVA Notify' fontColor='#dddddd' lineColor='#dddddd' />
<AtDivider
content={pt.get().pageFooter.dividerText}
fontColor='#dddddd'
lineColor='#dddddd'
/>
<View style={{ height: blankHeight }}></View>
</View>
);

View File

@ -4,6 +4,7 @@ import Taro from '@tarojs/taro';
import { AtCard, AtTimeline, AtAccordion } from 'taro-ui';
import type CustomTabBar from '@/custom-tab-bar';
import PageFooter from '@/components/PageFooter/PageFooter';
import pt from '@/plain-text';
import './index.scss';
interface CardContent {
@ -65,14 +66,7 @@ class StepInfo extends Component {
render(): ReactNode {
return (
<View>
<AtTimeline
items={[
{ title: '线上填写工单' },
{ title: '去东三-204教室维修电脑' },
{ title: '等待电脑维修' },
{ title: '维修结束,取回电脑' },
]}
></AtTimeline>
<AtTimeline items={pt.get().mainPage.stepList}></AtTimeline>
</View>
);
}
@ -82,14 +76,7 @@ class TipsInfo extends Component {
render(): ReactNode {
return (
<View>
<AtTimeline
items={[
{ title: '戴尔、Surface、外星人、苹果电脑不能拆机哦~' },
{ title: '数据无价,请随时做好数据备份哦~' },
{ title: '204也是实验室请遵守实验室纪律请勿饮食~' },
{ title: '我们是志愿服务,不收任何礼物哦~' },
]}
></AtTimeline>
<AtTimeline items={pt.get().mainPage.tipsList}></AtTimeline>
</View>
);
}
@ -98,19 +85,19 @@ class TipsInfo extends Component {
export default class Index extends Component {
state = {
dutyInfoCard: {
title: '204值班情况',
title: pt.get().mainPage.cardTitle.dutyInfo,
note: 'Tips',
extra: '额外信息',
content: <DutyInfo />,
},
stepInfoCard: {
title: '维修步骤',
title: pt.get().mainPage.cardTitle.stepInfo,
note: 'Tips 请在20:30以前取走自己的物品哦',
extra: '额外信息',
content: <StepInfo />,
},
tipsInfoCard: {
title: '注意事项',
title: pt.get().mainPage.cardTitle.tipsInfo,
note: 'Tips',
extra: '额外信息',
content: <TipsInfo />,
@ -126,20 +113,21 @@ export default class Index extends Component {
// 以上是TabBar相关
render(): ReactNode {
const mainPage = pt.get().mainPage;
return (
<View>
<View className='page-title'>
<View className='at-article__h1'>E</View>
<View className='at-article__h1'>-204</View>
<View className='at-article__h1'>{mainPage.mainTitleLine}</View>
<View className='at-article__h1'>{mainPage.subTitleLine}</View>
</View>
<View style={{ marginTop: 30 }}>
{mainPageCard(this.state.dutyInfoCard)}
<ExpandItem
title='查看维修步骤'
title={mainPage.expandTitle.stepInfo}
content={mainPageCard(this.state.stepInfoCard)}
/>
<ExpandItem
title='查看注意事项'
title={mainPage.expandTitle.tipsInfo}
content={mainPageCard(this.state.tipsInfoCard)}
/>
</View>

View File

@ -0,0 +1,41 @@
export interface MainPageText {
mainTitleLine: string;
subTitleLine: string;
cardTitle: {
dutyInfo: string;
stepInfo: string;
tipsInfo: string;
};
expandTitle: {
stepInfo: string;
tipsInfo: string;
};
stepList: Array<{ title: string }>;
tipsList: Array<{ title: string }>;
}
export const mainPageZhCn: MainPageText = {
mainTitleLine: '您好这里是E志者协会。',
subTitleLine: '维修请移步`东三-204`实验室。',
cardTitle: {
dutyInfo: '204值班情况',
stepInfo: '维修步骤',
tipsInfo: '注意事项',
},
expandTitle: {
stepInfo: '查看维修步骤',
tipsInfo: '查看注意事项',
},
stepList: [
{ title: '线上填写工单' },
{ title: '去`东三-204`实验室维修电脑' },
{ title: '等待电脑维修' },
{ title: '维修结束,取回电脑' },
],
tipsList: [
{ title: '戴尔、Surface、外星人、苹果电脑不能拆机哦~' },
{ title: '数据无价,请随时做好数据备份哦~' },
{ title: '204也是实验室请遵守实验室纪律请勿饮食~' },
{ title: '我们是志愿服务,不收任何礼物哦~' },
],
};

View File

@ -0,0 +1,7 @@
export interface PageFooterText {
dividerText: string;
}
export const pageFooterZhCn: PageFooterText = {
dividerText: 'EVA Notify',
};

View File

@ -0,0 +1,40 @@
import { PageFooterText, pageFooterZhCn } from './PageFooter';
import { MainPageText, mainPageZhCn } from './MainPage';
interface TextRecord {
pageFooter: PageFooterText;
mainPage: MainPageText;
}
const textZhCn: TextRecord = {
pageFooter: pageFooterZhCn,
mainPage: mainPageZhCn,
};
// type Lang = 'zh_CN' | 'en_US' | ...;
type Lang = 'zh_CN';
class PlainText {
private readonly textZhCn: TextRecord;
private lang: Lang;
constructor() {
this.textZhCn = textZhCn;
this.lang = 'zh_CN';
}
setLang(lang: Lang) {
this.lang = lang;
}
get(): TextRecord {
if (this.lang == 'zh_CN') {
return this.textZhCn;
}
return this.textZhCn;
}
}
const pt = new PlainText();
export default pt;