refactor note card to component

This commit is contained in:
2024-03-12 13:28:20 +08:00
parent 2e2629fe0a
commit f17bfa2a9e
10 changed files with 121 additions and 68 deletions
@@ -0,0 +1,3 @@
export default {
component: true,
};
+45
View File
@@ -0,0 +1,45 @@
import { View } from '@tarojs/components';
import { Component, ReactNode } from 'react';
import { TicketNote, StatusStr } from '@/pages/TicketDetail/TicketNote';
import pt from '@/plain-text';
import { timeFormat } from '@/utils';
import './NoteCard.scss';
interface NoteCardProps {
note: TicketNote;
}
export default class NoteCard extends Component<NoteCardProps, {}> {
props: Readonly<NoteCardProps> = {
note: new TicketNote(),
};
render(): ReactNode {
var message = '';
const note = this.props.note;
const td = pt.get().ticketDetail;
const createMessage = td.createTicketMessage;
const modifyMessage = td.statusModifyMessage;
const prefix = td.statusModifyPrefix;
switch (note.type) {
case 0:
message = createMessage;
break;
case 1:
message = note.content;
break;
case 2:
message = prefix + modifyMessage.get(note.content as StatusStr) || '';
break;
}
return (
<View>
<View>
{note.op} {note.createdTime.format(timeFormat)}
</View>
<View>{message}</View>
</View>
);
}
}
@@ -0,0 +1,3 @@
export default {
component: true,
};
+25
View File
@@ -0,0 +1,25 @@
import { Component, ReactNode } from 'react';
import NoteCard from '@/components/NoteCard/NoteCard';
import { TicketNote } from '@/pages/TicketDetail/TicketNote';
import { View } from '@tarojs/components';
interface NoteListProps {
noteList: Array<TicketNote>;
}
export default class NoteList extends Component<NoteListProps, {}> {
props: Readonly<NoteListProps> = {
noteList: [],
};
render(): ReactNode {
return (
<View>
{this.props.noteList.map((note, idx) => (
<View key={idx} style={{ marginTop: 8 }}>
<NoteCard note={note} />
</View>
))}
</View>
);
}
}