Коммит 0deea75f создал по автору Anton Medvedev's avatar Anton Medvedev
Просмотр файлов

Merge branch 'main' into 'main'

#37 Создано страница отображения одного проекта

See merge request teknokomo/universo-monorepo!31
владельцы e84be56c 9ac44245
...@@ -25,9 +25,10 @@ ...@@ -25,9 +25,10 @@
"phaser3-rex-plugins": "^1.60.5", "phaser3-rex-plugins": "^1.60.5",
"pinia": "^2.1.6", "pinia": "^2.1.6",
"quasar": "^2.6.0", "quasar": "^2.6.0",
"subscriptions-transport-ws": "^0.11.0",
"vue": "^3.0.0", "vue": "^3.0.0",
"vue-apollo": "^3.1.0", "vue-apollo": "^3.1.0",
"vue-i18n": "^9.2.2", "vue-i18n": "^9.4.1",
"vue-router": "^4.0.0" "vue-router": "^4.0.0"
}, },
"devDependencies": { "devDependencies": {
...@@ -1569,8 +1570,7 @@ ...@@ -1569,8 +1570,7 @@
"node_modules/backo2": { "node_modules/backo2": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
"integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA=="
"peer": true
}, },
"node_modules/balanced-match": { "node_modules/balanced-match": {
"version": "1.0.2", "version": "1.0.2",
...@@ -3864,8 +3864,7 @@ ...@@ -3864,8 +3864,7 @@
"node_modules/iterall": { "node_modules/iterall": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
"integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
"peer": true
}, },
"node_modules/js-tokens": { "node_modules/js-tokens": {
"version": "4.0.0", "version": "4.0.0",
...@@ -5434,11 +5433,10 @@ ...@@ -5434,11 +5433,10 @@
} }
}, },
"node_modules/subscriptions-transport-ws": { "node_modules/subscriptions-transport-ws": {
"version": "0.9.19", "version": "0.11.0",
"resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz", "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz",
"integrity": "sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==", "integrity": "sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==",
"deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md", "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md",
"peer": true,
"dependencies": { "dependencies": {
"backo2": "^1.0.2", "backo2": "^1.0.2",
"eventemitter3": "^3.1.0", "eventemitter3": "^3.1.0",
...@@ -5447,20 +5445,18 @@ ...@@ -5447,20 +5445,18 @@
"ws": "^5.2.0 || ^6.0.0 || ^7.0.0" "ws": "^5.2.0 || ^6.0.0 || ^7.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"graphql": ">=0.10.0" "graphql": "^15.7.2 || ^16.0.0"
} }
}, },
"node_modules/subscriptions-transport-ws/node_modules/eventemitter3": { "node_modules/subscriptions-transport-ws/node_modules/eventemitter3": {
"version": "3.1.2", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
"integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
"peer": true
}, },
"node_modules/subscriptions-transport-ws/node_modules/symbol-observable": { "node_modules/subscriptions-transport-ws/node_modules/symbol-observable": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
"integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
"peer": true,
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
...@@ -6496,7 +6492,6 @@ ...@@ -6496,7 +6492,6 @@
"version": "7.5.9", "version": "7.5.9",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
"peer": true,
"engines": { "engines": {
"node": ">=8.3.0" "node": ">=8.3.0"
}, },
......
<template>
<q-page padding>
{{ projectId }}
bla bla
</q-page>
</template>
<script lang="ts">
// import { useKanvasoStore } from '../stores/kanvaso';
// import { mapActions, mapState } from 'pinia';
import { defineComponent } from 'vue'
export default defineComponent({
// name: 'PageName'
computed: {
projectId: ()=>{
return this.$route?.params?.uuid||''
}
},
// mounted(){
// }
})
</script>
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import { useKanvasoStore } from '../stores/kanvaso.js'; import { useKanvasoStore } from '../stores/kanvaso.js';
import { useAuthStore } from '../stores/auth.js'; import { useCurrentUserStore } from '../stores/current-user';
import { mapActions, mapState } from 'pinia'; import { mapActions, mapState } from 'pinia';
import { debugLog } from '../utils'; import { debugLog } from '../utils';
export default defineComponent({ export default defineComponent({
...@@ -155,6 +155,7 @@ export default defineComponent({ ...@@ -155,6 +155,7 @@ export default defineComponent({
this.projectName = ''; this.projectName = '';
this.projectDescription = ''; this.projectDescription = '';
//TODO: сделать изменение стейта без перезапроса бекэнда
this.getKanvaso(); this.getKanvaso();
}) })
.catch((error) => { .catch((error) => {
...@@ -168,7 +169,7 @@ export default defineComponent({ ...@@ -168,7 +169,7 @@ export default defineComponent({
projects: 'getKanvaso', projects: 'getKanvaso',
projectsLength: 'getKanvasoLength', projectsLength: 'getKanvasoLength',
}), }),
...mapState(useAuthStore, { ...mapState(useCurrentUserStore, {
userId: 'getUserId', userId: 'getUserId',
}), }),
}, },
......
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
<q-separator /> <q-separator />
<q-card-section class="flex"> <q-card-section class="flex">
<q-space /> <q-space />
<q-btn <q-btn
outline outline
color="secondary" color="secondary"
label="+Создать проект" label="+Создать проект"
/> />
</q-card-section> </q-card-section>
<q-card-section> <q-card-section>
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
v-ripple v-ripple
v-for="project in projectList" v-for="project in projectList"
:key="project.id" :key="project.id"
:to="{name:'project', params:{uuid:project.id} }"
> >
<q-item-section avatar> <q-item-section avatar>
<q-icon size="xl" color="grey" name="space_dashboard" /> <q-icon size="xl" color="grey" name="space_dashboard" />
...@@ -40,7 +41,7 @@ ...@@ -40,7 +41,7 @@
{{ project.description }} {{ project.description }}
</div> </div>
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<q-btn icon="more_horiz" flat /> <q-btn icon="more_horiz" flat />
</q-item-section> </q-item-section>
...@@ -50,7 +51,7 @@ ...@@ -50,7 +51,7 @@
</q-card> </q-card>
</q-page> </q-page>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
const projectList = [ const projectList = [
...@@ -76,4 +77,3 @@ ...@@ -76,4 +77,3 @@
}, },
}); });
</script> </script>
\ No newline at end of file
...@@ -32,6 +32,7 @@ export const kanvasoEdit = gql` ...@@ -32,6 +32,7 @@ export const kanvasoEdit = gql`
} }
} }
`; `;
//отправка запроса на почту //отправка запроса на почту
export const sendMail = gql` export const sendMail = gql`
mutation sendQueryToMail( mutation sendQueryToMail(
......
...@@ -20,6 +20,7 @@ export const kanvaso = gql` ...@@ -20,6 +20,7 @@ export const kanvaso = gql`
} }
} }
`; `;
export const fetchVersion = gql` export const fetchVersion = gql`
query fetchVersion { query fetchVersion {
universoAplikoVersio(publikigo: true, tipo_Id: 1, aktuala: true) { universoAplikoVersio(publikigo: true, tipo_Id: 1, aktuala: true) {
......
...@@ -8,7 +8,6 @@ const routes: RouteRecordRaw[] = [ ...@@ -8,7 +8,6 @@ const routes: RouteRecordRaw[] = [
component: () => import('layouts/IndexLayout.vue'), component: () => import('layouts/IndexLayout.vue'),
beforeEnter: (to, from) => { beforeEnter: (to, from) => {
const store = useCurrentUserStore(); const store = useCurrentUserStore();
console.log(store);
if (store.getUserId) { if (store.getUserId) {
return { name: 'projects' }; return { name: 'projects' };
} }
...@@ -22,11 +21,9 @@ const routes: RouteRecordRaw[] = [ ...@@ -22,11 +21,9 @@ const routes: RouteRecordRaw[] = [
{ {
path: '', path: '',
name: 'projects', name: 'projects',
// component: () => import('pages/ProfilPage.vue'),
component: () => import('pages/ProjectsPage.vue'), component: () => import('pages/ProjectsPage.vue'),
beforeEnter: (to, from) => { beforeEnter: (to, from) => {
const store = useCurrentUserStore(); const store = useCurrentUserStore();
console.log(store);
if (!store.getUserId) { if (!store.getUserId) {
return { name: 'start' }; return { name: 'start' };
} }
...@@ -39,7 +36,6 @@ const routes: RouteRecordRaw[] = [ ...@@ -39,7 +36,6 @@ const routes: RouteRecordRaw[] = [
component: () => import('pages/LoginPage.vue'), component: () => import('pages/LoginPage.vue'),
beforeEnter: (to, from) => { beforeEnter: (to, from) => {
const store = useCurrentUserStore(); const store = useCurrentUserStore();
console.log(store);
if (store.getUserId) { if (store.getUserId) {
return { name: 'projects' }; return { name: 'projects' };
} }
...@@ -95,6 +91,18 @@ const routes: RouteRecordRaw[] = [ ...@@ -95,6 +91,18 @@ const routes: RouteRecordRaw[] = [
return; return;
}, },
}, },
{
path: '/projects/:uuid',
name: 'project',
component: () => import('pages/CurrentProjectPage.vue'),
beforeEnter: (to, from) => {
const store = useCurrentUserStore();
if (!store.getUserId) {
return { name: 'start' };
}
return;
},
},
], ],
}, },
......
Этот отличия не может быть отображен по слишком большой. Вместо этого вы можете использовать просмотреть бинарные данные
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать