visuddhinanda 3 anni fa
parent
commit
ad5efbd30a

+ 12 - 0
dashboard/src/components/README.md

@@ -0,0 +1,12 @@
+# 组件
+
+## 目录
+
+某栏目的专用组件放在以该栏目命名的目录下
+
+- `libray` 前台(阅读)的栏目
+  - `栏目名称` 某栏目的专用组件
+  - `组件1.tsx` libray 下面的栏目的公共组件
+- `studio` 用户后台(课程发布等)
+
+nut目录为练习用途。里面的内容可能会被删除。**线上不要使用**。

+ 40 - 25
dashboard/src/components/library/HeadBar.tsx

@@ -1,35 +1,50 @@
 import { Link } from "react-router-dom";
-import { Space } from "antd";
+import { Layout } from 'antd';
 import { useIntl } from "react-intl";
+import type { MenuProps } from 'antd';
+import { Menu } from 'antd';
 
-const Widget = () => {
+const onClick: MenuProps['onClick'] = e => {
+    console.log('click ', e);
+  };
+
+type IWidgetHeadBar ={
+	selectedKeys?: string
+}
+const Widget = ({selectedKeys = ''}: IWidgetHeadBar) => {
 	//Library head bar
 	const intl = useIntl();//i18n
 	// TODO
+	const items: MenuProps['items'] = [
+		{
+		  label: (<Link to = "/community">{intl.formatMessage({ id: "columns.library.community.title" })}</Link>),
+		  key: 'community',
+		},
+		{
+			label: (<Link to = "/palicanon">{intl.formatMessage({ id: "columns.library.palicanon.title" })}</Link>),
+			key: 'palicanon',
+		},
+		{
+			label: (<Link to = "/course">{intl.formatMessage({ id: "columns.library.course.title" })}</Link>),
+			key: 'course',
+		},
+		{
+			label: (<Link to = "/dict">{intl.formatMessage({ id: "columns.library.dict.title" })}</Link>),
+			key: 'dict',
+		},
+		{
+			label: (<Link to = "/anthology">{intl.formatMessage({ id: "columns.library.anthology.title" })}</Link>),
+			key: 'anthology',
+		},		
+		{
+			label: (<a href = "https://asset-hk.wikipali.org/help/zh-Hans" target="_blank" rel="noreferrer">{intl.formatMessage({ id: "columns.library.help.title" })}</a>),
+			key: 'help',
+		},
+	];
   return (
-	<Space>
-		<Link to="/community">
-			{intl.formatMessage({ id: "columns.library.community.title" })}
-		</Link>
-		<Link to="/palicanon">
-			{intl.formatMessage({ id: "columns.library.palicanon.title" })}
-		</Link>
-		<Link to="/course">
-			{intl.formatMessage({ id: "columns.library.course.title" })}
-		</Link>
-		<Link to="/term">
-			{intl.formatMessage({ id: "columns.library.term.title" })}
-		</Link>
-		<Link to="/dict">
-			{intl.formatMessage({ id: "columns.library.dict.title" })}
-		</Link>
-		<Link to="/anthology">
-			{intl.formatMessage({ id: "columns.library.anthology.title" })}
-		</Link>
-
-		<Link to="/studio/kosalla">译经楼首页</Link>
-
-	</Space>
+	<Layout>
+		<Menu onClick={onClick} selectedKeys={[selectedKeys]} mode="horizontal" theme="dark" items={items} />
+	</Layout>
   );
 };
 

+ 0 - 0
dashboard/src/components/library/article/.txt


+ 0 - 0
dashboard/src/components/blog/HeadBar.tsx → dashboard/src/components/library/blog/HeadBar.tsx


+ 0 - 0
dashboard/src/components/library/dict/.txt


+ 0 - 0
dashboard/src/components/library/palicanon/.txt


+ 3 - 0
dashboard/src/locales/README.md

@@ -0,0 +1,3 @@
+# i18n
+
+nut目录为练习用途。里面的内容可能会被删除。**线上不要使用**。

+ 4 - 0
dashboard/src/locales/zh-Hans/channel/index.ts

@@ -6,6 +6,10 @@ const items = {
   "channel.type.nissaya.title": "逐词解析",
   "channel.type.translation.title": "译文",
   "channel.lang": "语言",
+  "channel.fields.lang.label": "语言",
+  "channel.fields.type.label": "类型",
+  "channel.fields.name.label": "名称",
+
 };
 
 export default items;

+ 3 - 0
dashboard/src/locales/zh-Hans/index.ts

@@ -14,6 +14,9 @@ const items = {
   "columns.library.term.title": "术语百科",
   "columns.library.dict.title": "字典",
   "columns.library.anthology.title": "文集",
+  "columns.library.help.title": "帮助",
+  "columns.library.convertor.title": "巴利字符转换器",
+  "columns.library.palihandbook.title": "语法手册",
   "columns.studio.title": "译经楼",
   "columns.studio.palicanon.title": "圣典",
   "columns.studio.recent.title": "最近编辑",

+ 3 - 0
dashboard/src/pages/README.md

@@ -0,0 +1,3 @@
+# 页面
+
+nut目录为练习用途。里面的内容可能会被删除。**线上不要使用**。

+ 1 - 1
dashboard/src/pages/library/anthology/index.tsx

@@ -8,7 +8,7 @@ const Widget = () => {
 	// TODO
   return (
     <div>
-		<HeadBar />
+		<HeadBar selectedKeys="anthology"/>
       <div>文集首页</div>
 	  <div>
 	  	<Space>

+ 1 - 1
dashboard/src/pages/library/anthology/show.tsx

@@ -9,7 +9,7 @@ const Widget = () => {
 	const { anthology_id } = useParams();//url 参数
   return (
     <div>
-		<HeadBar />
+		<HeadBar selectedKeys="anthology"/>
       <div>文集{anthology_id}详情</div>
       <div>
 		<Space>主显示区</Space>

+ 1 - 1
dashboard/src/pages/library/blog/anthology.tsx

@@ -1,6 +1,6 @@
 import { Space } from "antd";
 import { useParams, Link } from "react-router-dom";
-import HeadBar from "../../../components/blog/HeadBar";
+import HeadBar from "../../../components/library/blog/HeadBar";
 import Footer from "../../../components/library/Footer";
 const Widget = () => {
 	// TODO

+ 1 - 1
dashboard/src/pages/library/blog/course.tsx

@@ -1,6 +1,6 @@
 import { Space } from "antd";
 import { useParams } from "react-router-dom";
-import HeadBar from "../../../components/blog/HeadBar";
+import HeadBar from "../../../components/library/blog/HeadBar";
 import Footer from "../../../components/library/Footer";
 
 const Widget = () => {

+ 1 - 1
dashboard/src/pages/library/blog/index.tsx

@@ -1,6 +1,6 @@
 import { Space } from "antd";
 import { Link } from "react-router-dom";
-import HeadBar from "../../../components/blog/HeadBar";
+import HeadBar from "../../../components/library/blog/HeadBar";
 import Footer from "../../../components/library/Footer";
 
 const Widget = () => {

+ 1 - 1
dashboard/src/pages/library/blog/term.tsx

@@ -1,6 +1,6 @@
 import { Space } from "antd";
 import { useParams } from "react-router-dom";
-import HeadBar from "../../../components/blog/HeadBar";
+import HeadBar from "../../../components/library/blog/HeadBar";
 import Footer from "../../../components/library/Footer";
 
 const Widget = () => {

+ 1 - 1
dashboard/src/pages/library/blog/translation.tsx

@@ -1,6 +1,6 @@
 import { Space } from "antd";
 import { useParams, Link } from "react-router-dom";
-import HeadBar from "../../../components/blog/HeadBar";
+import HeadBar from "../../../components/library/blog/HeadBar";
 import Footer from "../../../components/library/Footer";
 const Widget = () => {
 	// TODO

+ 1 - 1
dashboard/src/pages/library/community/index.tsx

@@ -6,7 +6,7 @@ const Widget = () => {
 	// TODO
   return (
     <div>
-		<HeadBar />
+		<HeadBar selectedKeys="community" />
       <div>最新译文</div>
       <div>
 		<Space>主显示区</Space>

+ 1 - 1
dashboard/src/pages/library/course/course.tsx

@@ -7,7 +7,7 @@ const Widget = () => {
 	const { courseid } = useParams();//url 参数
   return (
     <div>
-	<HeadBar />
+	<HeadBar  selectedKeys="course"/>
       <div>课程{courseid} 详情</div>
 	  <div>
 	  	<Space>

+ 1 - 1
dashboard/src/pages/library/course/index.tsx

@@ -7,7 +7,7 @@ const Widget = () => {
 	// TODO
   return (
     <div>
-		<HeadBar />
+		<HeadBar selectedKeys="course"/>
       <div>课程首页</div>
 	  <div>
 	  	<Space>

+ 1 - 1
dashboard/src/pages/library/course/lesson.tsx

@@ -9,7 +9,7 @@ const Widget = () => {
 
   return (
     <div>
-		<HeadBar />
+		<HeadBar  selectedKeys="course"/>
       <div>课 {lessonid} 详情</div>
       <div>
 		<Space>主显示区</Space>

+ 1 - 1
dashboard/src/pages/library/dict/index.tsx

@@ -6,7 +6,7 @@ const Widget = () => {
 	// TODO
   return (
     <div>
-		<HeadBar />
+		<HeadBar  selectedKeys="dict"/>
       <div>字典首页</div>
       <div>
 		<Space>主显示区</Space>

+ 1 - 1
dashboard/src/pages/library/dict/show.tsx

@@ -9,7 +9,7 @@ const Widget = () => {
 	const { word } = useParams();//url 参数
   return (
     <div>
-		<HeadBar />
+		<HeadBar selectedKeys="dict"/>
       <div>字典-单词-{word}</div>
       <div>
 		<Space>主显示区</Space>

+ 1 - 1
dashboard/src/pages/library/palicanon/index.tsx

@@ -6,7 +6,7 @@ const Widget = () => {
 	// TODO
   return (
     <div>
-		<HeadBar />
+		<HeadBar selectedKeys="palicanon" />
       <div>圣典分类</div>
       <div>
 		<Space>主显示区</Space>

+ 1 - 1
dashboard/src/pages/nut/index.tsx

@@ -4,7 +4,7 @@ import Footer from "../../components/library/Footer";
 const Widget = () => {
   return (
 	<div>
-		<HeadBar />
+		<HeadBar  />
 		<div>Home Page</div>
 		<Footer />
 	</div>