import { Component, Vue, Watch } from 'vue-property-decorator'; //outside of the component: function initialState() { return { type: "", server_state: "", rights: null, project_id: "", creating_corporation: "Tethys RDR", language: "", embargo_date: "", belongs_to_bibliography: 0, title_main: { value: "", language: "" }, abstract_main: { value: "", language: "" }, // geolocation: { // xmin: "", // ymin: "", // xmax: "", // ymax: "" // }, coverage: { x_min: null, y_min:null, x_max: null, y_max: null, elevation_min: null, elevation_max: null, elevation_absolut: null, depth_min: null, depth_max: null, depth_absolut: null, time_min: null, time_max: null, time_absolut: null }, checkedAuthors: [], checkedLicenses: [], // [], files: [], subjects: [], references: [], titles: [], abstratcs: [], checkedContributors: [], // checkedSubmitters: [], persons: [], contributors: [] // submitters: [] }; } // const dataset = new Vue({ @Component export default class Dataset extends Vue { // data: function() { // return initialState(); // } initialState = {}; type = ""; server_state = ""; rights = null; project_id = ""; creating_corporation = "Tethys RDR"; language = ""; embargo_date = ""; belongs_to_bibliography = 0; title_main = { value: "", language: "" }; abstract_main = { value: "", language: "" }; // geolocation: { // xmin: "", // ymin: "", // xmax: "", // ymax: "" // }, coverage = { x_min: "", y_min: "", x_max: "", y_max: "", elevation_min: "", elevation_max: "", elevation_absolut: "", depth_min: "", depth_max: "", depth_absolut: "", time_min: "", time_max: "", time_absolut: "" }; checkedAuthors = []; checkedLicenses = []; files = []; subjects = []; references = []; titles = []; abstracts = []; checkedContributors = []; // checkedSubmitters: [], authors = []; persons = []; contributors = []; // submitters: [] created() { this.initialState = Object.assign({}, this); // let json = JSON.stringify(this.$data); // this.reset = () => { // Object.assign(this.$data, JSON.parse(json)); // }; // this.reset(json); } @Watch('language') onLanguageChanged(val) { this.title_main.language = val; this.abstract_main.language = val; for (let [key, title] of Object.entries(this.titles)) { if (title.type == "Main") { title.language = val; } } for (let [key, abstract] of Object.entries(this.abstracts)) { if (abstract.type == "Abstract") { abstract.language = val; } } } reset() { // Object.assign(this.$data, initialState()); Object.assign(this.$data, this.initialState); } } // export default dataset;