| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <template>
- <v-form
- ref="form"
- v-model="properties.valid"
- lazy-validation
- >
- <slot name="form.input" v-bind="{entry}"></slot>
- <!--{{entry}}-->
- <v-btn v-if="!readOnly" class="mr-4 submitBtn ot_green ot_white--text" @click="submit">
- Enregistrer
- </v-btn>
- </v-form>
- </template>
- <script lang="ts">
- import {defineComponent, reactive, useContext, computed, toRefs} from '@nuxtjs/composition-api'
- import Vue from 'vue'
- import {useRepositoryHelper} from "~/use/store/useRepository";
- import {useQueryHelper} from "~/use/store/useQuery";
- import {Query, Repository} from "@vuex-orm/core";
- import {Model} from "~/models/Model";
- export type VForm = Vue & { validate: () => boolean }
- export default defineComponent({
- props: {
- repository: {
- type: Object as () => Repository<Model>,
- required: true
- },
- id:{
- type: Number,
- required: true
- },
- query:{
- type: Object as () => Query,
- required: true
- },
- },
- setup(props) {
- const {repository, id, query} = toRefs(props)
- const properties = reactive({
- valid: false,
- saveOk: false,
- saveKo: false
- })
- const {store} = useContext();
- const readOnly = computed(() => {
- useRepositoryHelper.getReadOnly(repository.value)
- })
- const entry = computed(() => {
- return useQueryHelper.getFlattenEntry(query.value, id.value)
- })
- const submit = () => {
- useRepositoryHelper.setReadOnly(repository.value, true)
- console.log(useQueryHelper.getJsonEntry(query.value, id.value))
- }
- return {
- submit,
- properties,
- readOnly,
- entry
- }
- },
- // methods:{
- // async submit(){
- //
- // console.log()
- //
- //
- // const form:VForm = this.$refs.form;
- // if(form.validate()){
- // const model = await this.repository.find(parseInt(this.$route.params.id));
- // if(model){
- // const playload = model.$toJson();
- //
- // this.$http.$put(`https://local.new.api.opentalent.fr/api/${model.$entity}/${this.$route.params.id}`, playload)
- // .then(()=>{
- // this.saveOk=true
- // }, () =>{
- // this.saveKo=true
- // })
- //
- // setTimeout(()=>{
- // this.saveOk=false
- // this.saveKo=false
- // },2000)
- // }
- // }
- // }
- // }
- })
- </script>
- <style scoped>
- .submitBtn {
- right: 0;
- margin-top: 20px;
- margin-bottom: 20px;
- }
- </style>
|