mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-10 08:44:58 +00:00
Compare commits
3 Commits
optimize_a
...
vue3-test0
Author | SHA1 | Date | |
---|---|---|---|
3e7c79d6ce | |||
bc1f624e14 | |||
f73d3bf320 |
@@ -1,7 +0,0 @@
|
||||
import Vue from 'vue'
|
||||
import App from 'ChillPersonAssets/js/AccompanyingCourse.vue'
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
render: h => h(App)
|
||||
})
|
@@ -56,7 +56,7 @@ module.exports = function(encore, entries)
|
||||
// Chill2 new assets
|
||||
encore.addEntry('forkawesome', __dirname + '/Resources/public/modules/forkawesome/index.js');
|
||||
encore.addEntry('bootstrap', __dirname + '/Resources/public/modules/bootstrap/index.js');
|
||||
encore.addEntry('vuejs', __dirname + '/Resources/public/modules/vue/index.js');
|
||||
//encore.addEntry('vuejs', __dirname + '/Resources/public/modules/vue/index.js');
|
||||
|
||||
// CKEditor5
|
||||
buildCKEditor(encore);
|
||||
|
@@ -96,18 +96,21 @@ class AccompanyingCourseController extends Controller
|
||||
$data = [
|
||||
'id' => $accompanyingCourse->getId(),
|
||||
'remark' => $accompanyingCourse->getRemark(),
|
||||
'closing_motive' => $accompanyingCourse->getClosingMotive()->getName()['fr'],
|
||||
'closing_motive' => $accompanyingCourse->getClosingMotive() ? $accompanyingCourse->getClosingMotive()->getName()['fr'] : null,
|
||||
'opening_date' => ($accompanyingCourse->getOpeningDate()) ? $accompanyingCourse->getOpeningDate()->format('Y-m-d') : null,
|
||||
'closing_date' => ($accompanyingCourse->getClosingDate()) ? $accompanyingCourse->getClosingDate()->format('Y-m-d') : null,
|
||||
'persons' => $persons
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
$normalizer = [new ObjectNormalizer()];
|
||||
$encoder = [new JsonEncoder()];
|
||||
|
||||
$serializer = new Serializer($normalizer, $encoder);
|
||||
$serialized = $serializer->serialize($data,'json', []);
|
||||
|
||||
*
|
||||
*/
|
||||
$serialized = \json_encode($data);
|
||||
$response = new Response($serialized);
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
return $response;
|
||||
|
@@ -0,0 +1,20 @@
|
||||
|
||||
import Vue from 'vue';
|
||||
|
||||
const AccompanyingCourseComponent = {
|
||||
data() {
|
||||
return {
|
||||
id: 7,
|
||||
persons_associated: []
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
let app = Vue.CreateApp({
|
||||
delimiters: ['${', '}']
|
||||
})
|
||||
.component(AccompanyingCourseComponent)
|
||||
;
|
||||
|
||||
|
||||
app.mount('#app');
|
@@ -1,19 +1,105 @@
|
||||
<template>
|
||||
<div id="app">
|
||||
<persons_associated></persons_associated>
|
||||
</div>
|
||||
<div id="kkk">
|
||||
<h3>Usagers concernés</h3>
|
||||
<dl>
|
||||
<dt>id</dt>
|
||||
<dd>{{ course.id }}</dd>
|
||||
<dt>opening_date</dt>
|
||||
<dd>{{ course.opening_date }}</dd>
|
||||
<dt>closing_date</dt>
|
||||
<dd>{{ course.closing_date }}</dd>
|
||||
<dt>remarkzzzzz</dt>
|
||||
<dd>{{ course.remark }}</dd>
|
||||
<dt>closing_motive</dt>
|
||||
<dd>{{ course.closing_motive }}</dd>
|
||||
</dl>
|
||||
<label>{{counter}} usagers concernés</label>
|
||||
<table class="rounded">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="chill-orange">firstname</th>
|
||||
<th class="chill-orange">lastname</th>
|
||||
<th class="chill-orange">startdate</th>
|
||||
<th class="chill-orange">enddate</th>
|
||||
<th class="chill-orange">actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="person in course.persons">
|
||||
<td>{{ person.firstname }}</td>
|
||||
<td>{{ person.lastname }}</td>
|
||||
<td>{{ person.startdate }}</td>
|
||||
<td>{{ person.enddate }}</td>
|
||||
<td>
|
||||
<ul class="record_actions">
|
||||
<li><a class="sc-button bt-show"></a></li>
|
||||
<li><a class="sc-button bt-update"></a></li>
|
||||
<li><a class="sc-button bt-delete"></a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<ul class="record_actions">
|
||||
<li>
|
||||
<button class="sc-button bt-create" @click="addPerson">Add Person</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import persons_associated from './components/PersonsAssociated.vue'
|
||||
import { createApp } from 'vue';
|
||||
|
||||
export default {
|
||||
name: 'app',
|
||||
components: {
|
||||
persons_associated,
|
||||
const App = {
|
||||
name: 'AppAccompanyingCourse',
|
||||
//delimiters: ['${', '}'], works only for template "in browser", not for template in vue files
|
||||
data() {
|
||||
return { course:
|
||||
{
|
||||
id: 50,
|
||||
opening_date: null,
|
||||
closing_date: null,
|
||||
remark: 'bim',
|
||||
closing_motive: 'bam',
|
||||
counter: 0,
|
||||
persons: []
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
courseId() {
|
||||
return window.courseId;
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
console.log('mounted');
|
||||
console.log(this.data);
|
||||
console.log(this.courseId);
|
||||
await this.getCourse();
|
||||
console.log(this.data);
|
||||
console.log('mounted stop');
|
||||
},
|
||||
methods: {
|
||||
async getCourse() {
|
||||
console.log('get course start');
|
||||
console.log(this);
|
||||
courseId = this.courseId;
|
||||
let data_;
|
||||
return fetch(`/fr/api/parcours/${courseId}/show`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
console.log(data);
|
||||
console.log(this);
|
||||
this.$data.course = data;
|
||||
console.log(this.data);
|
||||
console.log('get course finish');
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default App;
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
<style></style>
|
||||
|
@@ -0,0 +1,35 @@
|
||||
|
||||
import Vue from 'vue'
|
||||
import VueResource from 'vue-resource'
|
||||
|
||||
Vue.use(VueResource);
|
||||
|
||||
export default {
|
||||
template: '#vue-usagers',
|
||||
delimiters: ['${', '}'],
|
||||
data () {
|
||||
return {
|
||||
persons_associated: []
|
||||
};
|
||||
},
|
||||
http: {
|
||||
root: 'http://localhost:8001/fr/api'
|
||||
},
|
||||
methods: {
|
||||
addPerson(){
|
||||
this.persons_associated.persons.push({"firstname": "Lisa", "lastname": "Simpson", "startdate": "1975-09-15", "enddate": "2021-04-20" })
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
counter() {
|
||||
return this.persons_associated.persons.length;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.$resource('parcours/270/show').get().then((response) => {
|
||||
this.persons_associated = response.data
|
||||
}, (response) => {
|
||||
console.log('erreur', response);
|
||||
});
|
||||
}
|
||||
};
|
@@ -1,60 +1,12 @@
|
||||
<template>
|
||||
<div class="vue-component">
|
||||
<h3>Usagers concernés</h3>
|
||||
<dl>
|
||||
<dt>id</dt>
|
||||
<dd>{{ persons_associated.id }}</dd>
|
||||
<dt>opening_date</dt>
|
||||
<dd>{{ persons_associated.opening_date }}</dd>
|
||||
<dt>closing_date</dt>
|
||||
<dd>{{ persons_associated.closing_date }}</dd>
|
||||
<dt>remark</dt>
|
||||
<dd>{{ persons_associated.remark }}</dd>
|
||||
<dt>closing_motive</dt>
|
||||
<dd>{{ persons_associated.closing_motive }}</dd>
|
||||
</dl>
|
||||
<label>{{counter}} usagers concernés</label>
|
||||
<table class="rounded">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="chill-orange">firstname</th>
|
||||
<th class="chill-orange">lastname</th>
|
||||
<th class="chill-orange">startdate</th>
|
||||
<th class="chill-orange">enddate</th>
|
||||
<th class="chill-orange">actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="person in persons_associated.persons">
|
||||
<td>{{ person.firstname }}</td>
|
||||
<td>{{ person.lastname }}</td>
|
||||
<td>{{ person.startdate }}</td>
|
||||
<td>{{ person.enddate }}</td>
|
||||
<td>
|
||||
<ul class="record_actions">
|
||||
<li><a class="sc-button bt-show"></a></li>
|
||||
<li><a class="sc-button bt-update"></a></li>
|
||||
<li><a class="sc-button bt-delete"></a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<ul class="record_actions">
|
||||
<li>
|
||||
<button class="sc-button bt-create" @click="addPerson">Add Person</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import VueResource from 'vue-resource'
|
||||
|
||||
Vue.use(VueResource)
|
||||
|
||||
export default{
|
||||
export default {
|
||||
template: '#vue-usagers',
|
||||
delimiters: ['${', '}'],
|
||||
data () {
|
||||
return {
|
||||
persons_associated: []
|
||||
@@ -74,15 +26,12 @@
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.$resource('parcours/861/show').get().then((response) => {
|
||||
this.$resource('parcours/270/show').get().then((response) => {
|
||||
this.persons_associated = response.data
|
||||
}, (response) => {
|
||||
console.log('erreur', response);
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
|
||||
|
10
src/Bundle/ChillPersonBundle/Resources/public/js/index.js
Normal file
10
src/Bundle/ChillPersonBundle/Resources/public/js/index.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import AccompanyingCourseComponent from './AccompanyingCourse.vue';
|
||||
import { createApp } from 'vue';
|
||||
|
||||
|
||||
const app = createApp({
|
||||
name: 'AccCourseGlobal',
|
||||
template: '<div class="abcde"><accompanying-course></accompanying-course></div>',
|
||||
})
|
||||
.component('accompanying-course', AccompanyingCourseComponent)
|
||||
.mount('#app');
|
@@ -8,24 +8,14 @@
|
||||
|
||||
<h1>{{ block('title') }}</h1>
|
||||
|
||||
{#
|
||||
<pre>
|
||||
{{ accompanyingCourse.id }}
|
||||
{{ accompanyingCourse.openingDate|format_date('short') }}
|
||||
{{ accompanyingCourse.closingDate|format_date('short') }}
|
||||
{{ accompanyingCourse.closingMotive|chill_entity_render_box }}
|
||||
{{ accompanyingCourse.remark|raw }}
|
||||
{{ accompanyingCourse.user }}
|
||||
usagers:
|
||||
{% for p in accompanyingCourse.participations %}
|
||||
{{ p.person.id }} | <a href="{{ path('chill_person_accompanying_period_list', { person_id: p.person.id }) }}">{{ p.person.fullnamecanonical }}</a> | {{ p.startdate|format_date('short') }} | {{ p.enddate|format_date('short') }}
|
||||
{% endfor %}
|
||||
</pre>
|
||||
{{ dump() }}
|
||||
{% verbatim %}{% endverbatim %}
|
||||
#}
|
||||
|
||||
<div id="app" data-name="{{ accompanyingCourse.id }}"></div>
|
||||
{{ encore_entry_script_tags('vuejs') }}
|
||||
<script type="text/javascript">
|
||||
window.courseId = {{ accompanyingCourse.id|e('js') }};
|
||||
console.log(window.courseId);
|
||||
</script>
|
||||
|
||||
|
||||
<div id="app"></div>
|
||||
|
||||
{{ encore_entry_script_tags('accompanying_course') }}
|
||||
|
||||
{% endblock %}
|
||||
|
@@ -7,4 +7,7 @@ module.exports = function(encore, entries)
|
||||
encore.addAliases({
|
||||
ChillPersonAssets: __dirname + '/Resources/public'
|
||||
});
|
||||
|
||||
encore.addEntry('accompanying_course', __dirname + '/Resources/public/js/index.js');
|
||||
|
||||
};
|
||||
|
Reference in New Issue
Block a user