mirror of https://github.com/doccano/doccano.git
pythonannotation-tooldatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learning
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.9 KiB
84 lines
1.9 KiB
<template>
|
|
<base-card
|
|
:title="$t('comments.comments')"
|
|
:cancel-text="$t('generic.close')"
|
|
@cancel="$emit('click:cancel')"
|
|
>
|
|
<template v-if="user.id" #content>
|
|
<form-create @add-comment="add" />
|
|
<comment
|
|
v-for="comment in comments"
|
|
:key="comment.id"
|
|
:comment="comment"
|
|
:user-id="user.id"
|
|
@delete-comment="remove"
|
|
@update-comment="maybeUpdate"
|
|
/>
|
|
</template>
|
|
</base-card>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import Vue from 'vue'
|
|
import Comment from '@/components/comment/Comment.vue'
|
|
import FormCreate from '@/components/comment/FormCreate.vue'
|
|
import BaseCard from '@/components/utils/BaseCard.vue'
|
|
import { CommentItem } from '~/domain/models/comment/comment'
|
|
import { UserItem } from '~/domain/models/user/user'
|
|
|
|
export default Vue.extend({
|
|
components: {
|
|
BaseCard,
|
|
Comment,
|
|
FormCreate
|
|
},
|
|
|
|
props: {
|
|
exampleId: {
|
|
type: Number,
|
|
required: true
|
|
}
|
|
},
|
|
|
|
data() {
|
|
return {
|
|
user: {} as UserItem,
|
|
comments: [] as CommentItem[]
|
|
}
|
|
},
|
|
|
|
watch: {
|
|
exampleId: {
|
|
handler(val) {
|
|
if (val !== undefined) {
|
|
this.list()
|
|
}
|
|
},
|
|
immediate: true,
|
|
deep: true
|
|
}
|
|
},
|
|
|
|
async created() {
|
|
this.user = await this.$repositories.user.getProfile()
|
|
},
|
|
|
|
methods: {
|
|
async list() {
|
|
this.comments = await this.$repositories.comment.list(this.$route.params.id, this.exampleId)
|
|
},
|
|
async add(message: string) {
|
|
await this.$repositories.comment.create(this.$route.params.id, this.exampleId, message)
|
|
this.list()
|
|
},
|
|
async remove(item: CommentItem) {
|
|
await this.$repositories.comment.delete(this.$route.params.id, item)
|
|
this.list()
|
|
},
|
|
async maybeUpdate(item: CommentItem) {
|
|
await this.$repositories.comment.update(this.$route.params.id, item)
|
|
this.list()
|
|
}
|
|
}
|
|
})
|
|
</script>
|