Untitled

 avatar
unknown
javascript
2 years ago
5.6 kB
6
Indexable
<template>
    <q-page padding>
        <div class="row justify-center">
            <q-form
                @submit="onSubmit"
                class="q-gutter-md col-lg-6 col-sm-10 col-xs-11"
            >
                <div class="col-12">
                    <q-input
                        filled
                        type="string"
                        v-model="reference"
                        label="Référence *"
                        lazy-rules
                        :rules="[
                        val => val !== null && val !== '' || 'Veuillez remplir ce champs',
                        ]"
                    />
                </div>

                <q-editor v-model="precisions" placeholder="Veuillez donner plus de précisions sur votre proposition" min-height="12rem" />

                <div class="row justify-between">
                    <div class="col q-mr-sm">
                        <q-input
                            filled
                            type="number"
                            v-model="tjm"
                            label="Tarif Journalier Moyen (TJM) *"
                            lazy-rules
                            :rules="[
                                val => val !== null && val !== '' || 'Veuillez remplir ce champs',
                            ]"
                        />
                    </div>
                    <div class="col q-ml-sm">
                        <q-input
                            @update:model-value="val => { file = val[0] }"
                            filled
                            type="file"
                            style="border-style: dashed; border: 1px dashed"
                        >
                            <q-tooltip class="shadow-4" :offset="[10, 10]">
                                Veuillez charger votre cv
                            </q-tooltip>
                        </q-input>
                    </div>
                </div>
    
                <p>Disponibilité</p>

                <div class="row bg-grey-1" style="height: 100px">
                    <q-radio class="col-4 items-center justify-center" v-model="date_dispo" name="date_dispo" val="immédiate" label="Immédiate" />
                    <q-radio class="col-4 items-center justify-center" v-model="date_dispo" name="date_dispo" val="dans 1 mois" label="Dans 1 mois" />
                    <q-radio class="col-4 items-center justify-center" v-model="date_dispo" name="date_dispo" val="dans 3 mois" label="Dans 3 mois" />
                </div>

                <div>
                    <q-btn label="Envoyer" type="submit" color="primary" class="float-right"/>
                </div>
            </q-form>
        </div>
    </q-page>
</template>

<script>
    import "@aws-amplify/ui-vue/styles.css"
    import { Amplify, API } from 'aws-amplify'
    import awsconfig from '../aws-exports'
    import { ref } from 'vue'
    import { useRoute } from 'vue-router'
    import * as mutations from '../graphql/mutations'
    import * as queries from '../graphql/queries'
    import { useOpStore } from "../stores/OpStore"
    import { useAuthStore } from '../stores/AuthStore'

    Amplify.configure(awsconfig)

    export default {
        props: {
            id: {
                type: String,
                default: '',
            }
        },
        methods: {
            async onSubmit () {
                const createPropositionDetails = {
                cv: this.ajoutcv,
                tjm: this.tjm,
                disponibilte_date: this.date_dispo,
                precisions: this.precisions,
                user_id: this.currentUser.id,
                offre_id: this.Opcurrent.id,
            }
            await API.graphql(
                { 
                query: mutations.createProposition, 
                variables:
                {
                    input: createPropositionDetails
                }
                });
                this.$router.push({ path: '/confirmPage' })
            },
        },
        setup (props) {
            const Opcurrent = useOpStore()
            const currentUser = useAuthStore()
            const router = useRoute()

            const proposition = ref([])
            const reference = ref('')
            const cv = ref('')
            const tjm = ref(null)
            const precisions = ref('')
            const score = ref(null)

            console.log('props id proposition ', props.id)

            const getPropositionInfo = async () => {
                const currentProposition = await API.graphql({
                    query: queries.getProposition,
                    variables: { id: router.params.id }
                })

                console.log('current proposition ', currentProposition)

                proposition.value = currentProposition.data.getProposition

                // const { id, reference, cv, tjm, precisions, score } = proposition
                // console.log('reference ', reference)
                // console.log('tjm ', tjm)
                reference.value = proposition.value.reference

            }

        return {
            proposition,
            reference,
            cv,
            tjm,
            precisions,
            score,
            ajoutcv: ref(null),
            tjm: ref(null),
            date_dispo: ref(null),
            precisions: ref(null),
            Opcurrent,
            currentUser,
            getPropositionInfo,
            }
        },
    }
</script>

<style scoped>
    .item {
        height: 50px;
    }
</style>
Editor is loading...