@api-platform/client-generator
Version:
Generate apps built with Next, Nuxt, Quasar, React, React Native, Vue or Vuetify for any API documented using Hydra or OpenAPI
84 lines (67 loc) • 1.5 kB
JavaScript
import { error, success } from '../../utils/notify';
export default {
data() {
return {
item: {},
};
},
created() {
this.onCreated();
},
beforeDestroy() {
this.onBeforeDestroy();
},
watch: {
error(message) {
this.onUpdateError(message);
},
deleteError(message) {
this.onDeleteError(message);
},
updated(val) {
this.onUpdated(val);
},
retrieved(val) {
this.item = { ...val };
},
},
methods: {
del() {
this.deleteItem(this.retrieved).then(() =>
this.$router
.push({ name: `${this.$options.servicePrefix}List` })
.catch(() => {})
);
},
reset() {
this.updateReset();
this.delReset();
this.createReset();
},
onSendForm() {
this.$refs.updateForm.$children[0].validate().then(success => {
if (success) {
this.update(this.item);
}
});
},
resetForm() {
this.item = { ...this.retrieved };
},
onCreated() {
this.retrieve(decodeURIComponent(this.$route.params.id));
},
onBeforeDestroy() {
this.reset();
},
onUpdated(val) {
success(`${val['@id']} ${this.$t('{{{labels.updated}}}')}.`, this.$t('{{{labels.close}}}'));
},
onUpdateError(message) {
message && error(message, this.$t('{{{labels.close}}}'));
},
onDeleteError(message) {
message && error(message, this.$t('{{{labels.close}}}'));
},
},
};