diff --git a/src/common/shared_vuejs.ts b/src/common/shared_vuejs.ts index ae0859cb..9a03b9fe 100755 --- a/src/common/shared_vuejs.ts +++ b/src/common/shared_vuejs.ts @@ -80,7 +80,11 @@ export const shared_consts = { REQ: 2000, SET: 2001, REMOVE_FROM_MYLIST: 2144, + REFUSE_REQ: 2145, + CANCEL_REQ: 1146, DELETE: 2170, + ADDADMIN: 2180, + REMOVEADMIN: 2185, }, PUBTOSHARE: { @@ -921,8 +925,19 @@ export const shared_consts = { ID_GROUP_BLOCK_USER: 16, ID_GROUP_DELETE_USER: 32, ID_GROUP_REMOVED: 64, + ID_GROUP_ADDED_ADMIN_OFMYGROUP: 128, + ID_GROUP_REMOVED_ADMIN_OFMYGROUP: 256, TYPEDIR_CIRCUITS: 5, + ID_CIRCUIT_NEW_REC: 1, + ID_CIRCUIT_ACCEPTED: 2, + ID_CIRCUIT_REFUSED: 4, + ID_CIRCUIT_REQUEST_TO_ENTER: 8, + ID_CIRCUIT_BLOCK_USER: 16, + ID_CIRCUIT_DELETE_USER: 32, + ID_CIRCUIT_REMOVED: 64, + ID_CIRCUIT_ADDED_ADMIN: 128, + ID_CIRCUIT_REMOVED_ADMIN: 256, TYPEDIR_BOOKING: 6, diff --git a/src/components/CFinder/CFinder.ts b/src/components/CFinder/CFinder.ts index 258159af..56e0de0b 100755 --- a/src/components/CFinder/CFinder.ts +++ b/src/components/CFinder/CFinder.ts @@ -218,6 +218,13 @@ export default defineComponent({ // {label: 'Seguo', value: tools.FILTER_MYFOLLOW}, ] + } else if (props.table === toolsext.TABCIRCUITS) { + myoptions.value = [ + { label: '🌎 Tutti', value: tools.FILTER_ALL }, + { label: '👤 Circuiti che Gestisci', value: tools.FILTER_MYREC }, + // {label: 'Seguo', value: tools.FILTER_MYFOLLOW}, + ] + } else { myoptions.value = [ { label: '🌎 Tutti', value: tools.FILTER_ALL }, @@ -1022,7 +1029,8 @@ export default defineComponent({ let lk_as = 'circuit' let af_objId_tab = 'myId' - return {} + return { + } } else if (props.table === toolsext.TABMYGOODS) { return { diff --git a/src/components/CGridTableRec/CGridTableRec.ts b/src/components/CGridTableRec/CGridTableRec.ts index dc4e279e..beb43c94 100755 --- a/src/components/CGridTableRec/CGridTableRec.ts +++ b/src/components/CGridTableRec/CGridTableRec.ts @@ -217,6 +217,11 @@ export default defineComponent({ required: false, default: '', }, + circuitname: { + type: String, + required: false, + default: '', + }, }, components: { CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends, CMyGroups, CMyUser, CMyRecCard, CMyCardPopup, CMyRecGrpCard, CMyCardGrpPopup, CMyCardCircuitPopup, diff --git a/src/components/CGridTableRec/CGridTableRec.vue b/src/components/CGridTableRec/CGridTableRec.vue index 51b89d09..ff786d69 100755 --- a/src/components/CGridTableRec/CGridTableRec.vue +++ b/src/components/CGridTableRec/CGridTableRec.vue @@ -254,6 +254,7 @@ :mycontact="row" :visu="visufind" :groupname="extrafield" + :circuitname="circuitname" :labelextra="col_title ? row[col_title] : ''" :labelFooter="col_footer ? getLabelFooterByRow(row) : ''" > @@ -686,7 +687,7 @@ diff --git a/src/components/CMyCircuit/CMyCircuit.vue b/src/components/CMyCircuit/CMyCircuit.vue index 7f43bde6..3f4a7bfb 100755 --- a/src/components/CMyCircuit/CMyCircuit.vue +++ b/src/components/CMyCircuit/CMyCircuit.vue @@ -20,63 +20,58 @@ - {{ $t('groups.remove_from_mygroups') }} + @click="tools.setCmd($q, shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST, myusername(), '', circuit.NAME)"> + {{ $t('circuit.remove_from_mylist') }} - - - {{ $t('groups.delete_group') }} - - - - - {{ $t('groups.block_group') }} + + + {{ $t('circuit.delete') }} - + - + - - - {{ $t('groups.ask_group') }} + + + {{ $t('circuit.ask') }} - - + + {{ $t('shared.refuse_ask') }} - + {{ $t('shared.cancel_ask') }} - - - {{ $t('groups.exit_group') }} + + + {{ $t('circuit.exit') }} - - - {{ $t('groups.delete_group') }} + + + {{ $t('circuit.delete') }} - + - {{ $t('groups.reject_ask_group') }} + @click="tools.setCmd($q, shared_consts.CIRCUITCMD.REFUSE_REQ, myusername(), false, circuit.name)"> + {{ $t('circuit.reject_ask') }} @@ -89,11 +84,11 @@ + @click="tools.setCmd($q, shared_consts.CIRCUITCMD.REFUSE_REQ, myusername(), '', circuit.name)"> {{ $t('shared.refuse_ask') }} + @click="tools.setCmd($q, shared_consts.CIRCUITCMD.CANCEL_REQ, myusername(), '', circuit.name)"> {{ $t('shared.cancel_ask') }} diff --git a/src/components/CMyCircuits/CMyCircuits.ts b/src/components/CMyCircuits/CMyCircuits.ts index 2e39e74e..6a4ec618 100755 --- a/src/components/CMyCircuits/CMyCircuits.ts +++ b/src/components/CMyCircuits/CMyCircuits.ts @@ -56,8 +56,8 @@ export default defineComponent({ try { if (props.modelValue === costanti.CIRCUITS) { arr = circuitStore.listcircuits - } else if (props.modelValue === costanti.MY_USERACCOUNTS ) { - arr = userStore.my.profile.listUserAccounts + } else if (props.modelValue === costanti.MY_CIRCUITS ) { + arr = userStore.my.profile.mycircuits } else if (props.modelValue === costanti.MANAGE_CIRCUITS) { // arr = userStore.my.profile.manage_mycircuits } else if (props.modelValue === costanti.ASK_SENT_CIRCUIT) { @@ -73,13 +73,13 @@ export default defineComponent({ const myoptions = computed(() => { const mybutt = [] mybutt.push({ label: t('mypages.find_circuit'), value: costanti.FIND_CIRCUIT }) - mybutt.push({ label: t('mypages.follow_circuits') + ' (' + numMyCircuits.value + ')', value: costanti.MY_USERACCOUNTS }) + mybutt.push({ label: t('mypages.follow_circuits') + ' (' + numMyCircuits.value + ')', value: costanti.MY_CIRCUITS }) // mybutt.push({ label: t('mypages.manage_my_circuits') + ' (' + numManageCircuits.value + ')', value: costanti.MANAGE_CIRCUITS }) if (numAskSentCircuits.value > 0 || props.modelValue === costanti.ASK_SENT_CIRCUIT) mybutt.push({ - label: t('mypages.request_sent_circuits') + ' (' + numAskSentCircuits.value + ')', + label: t('mypages.request_sent') + ' (' + numAskSentCircuits.value + ')', value: costanti.ASK_SENT_CIRCUIT }) @@ -89,7 +89,7 @@ export default defineComponent({ const numMyCircuits = computed(() => { - const arr = userStore.my.profile.listUserAccounts + const arr = userStore.my.profile.mycircuits return (arr) ? arr.length : 0 }) diff --git a/src/components/CMyFriends/CMyFriends.ts b/src/components/CMyFriends/CMyFriends.ts index 01aecf59..c4cf7a08 100755 --- a/src/components/CMyFriends/CMyFriends.ts +++ b/src/components/CMyFriends/CMyFriends.ts @@ -44,6 +44,11 @@ export default defineComponent({ required: false, default: '', }, + circuitname: { + type: String, + required: false, + default: '', + }, labelextra: { type: String, required: false, @@ -98,7 +103,7 @@ export default defineComponent({ }) if (numAskSentFriends.value > 0 || props.modelValue === costanti.ASK_SENT_FRIENDS) mybutt.push({ - label: t('mypages.request_sent_friends') + ' (' + numAskSentFriends.value + ')', + label: t('mypages.request_sent') + ' (' + numAskSentFriends.value + ')', value: costanti.ASK_SENT_FRIENDS }) if (numAskTrust.value > 0 || props.modelValue === costanti.ASK_TRUST) diff --git a/src/components/CMyFriends/CMyFriends.vue b/src/components/CMyFriends/CMyFriends.vue index 535a42d1..6471b86f 100755 --- a/src/components/CMyFriends/CMyFriends.vue +++ b/src/components/CMyFriends/CMyFriends.vue @@ -43,6 +43,7 @@ @setCmd="setCmd" :visu="visu" :groupname="groupname" + :circuitname="circuitname" :labelextra="labelextra"> diff --git a/src/components/CMyGroup/CMyGroup.vue b/src/components/CMyGroup/CMyGroup.vue index d2fb54d3..258bfb93 100755 --- a/src/components/CMyGroup/CMyGroup.vue +++ b/src/components/CMyGroup/CMyGroup.vue @@ -48,7 +48,7 @@ - + {{ $t('shared.refuse_ask') }} diff --git a/src/components/CMyGroups/CMyGroups.ts b/src/components/CMyGroups/CMyGroups.ts index 91da0a0c..6a472c0a 100755 --- a/src/components/CMyGroups/CMyGroups.ts +++ b/src/components/CMyGroups/CMyGroups.ts @@ -76,7 +76,7 @@ export default defineComponent({ if (numAskSentGroups.value > 0 || props.modelValue === costanti.ASK_SENT_GROUP) mybutt.push({ - label: t('mypages.request_sent_groups') + ' (' + numAskSentGroups.value + ')', + label: t('mypages.request_sent') + ' (' + numAskSentGroups.value + ')', value: costanti.ASK_SENT_GROUP }) diff --git a/src/components/CMyUser/CMyUser.ts b/src/components/CMyUser/CMyUser.ts index 681dad8e..beedde57 100755 --- a/src/components/CMyUser/CMyUser.ts +++ b/src/components/CMyUser/CMyUser.ts @@ -31,6 +31,16 @@ export default defineComponent({ required: false, default: '', }, + circuitname: { + type: String, + required: false, + default: '', + }, + name: { + type: String, + required: false, + default: '', + }, labelextra: { type: String, required: false, diff --git a/src/components/CMyUser/CMyUser.vue b/src/components/CMyUser/CMyUser.vue index 5bbb308a..0f2d88e3 100755 --- a/src/components/CMyUser/CMyUser.vue +++ b/src/components/CMyUser/CMyUser.vue @@ -93,43 +93,6 @@ - - - - - - - - - - - - {{ $t('groups.accept_circuit') }} - - - - - - - - - - {{ $t('shared.refuse_ask') }} - - - - - - - {{ $t('shared.cancel_ask_short') }} - - - - - - @@ -164,6 +127,77 @@ + + + + + + + + + + + + {{ $t('circuit.accept') }} + + + + + + + + + + {{ $t('shared.refuse_ask') }} + + + + + + + {{ $t('shared.cancel_ask_short') }} + + + + + + + + + + + + + + + + {{ $t('circuit.addasadmin') }} + + + + + + {{ $t('circuit.remove_as_admin') }} + + + + + + {{ $t('circuit.remove_from_mycircuit') }} + + + + + + {{ $t('friends.report_user') }} + + + + + + diff --git a/src/layouts/toolbar/notifPopover/notifPopover.vue b/src/layouts/toolbar/notifPopover/notifPopover.vue index b2268a6e..d07041f8 100755 --- a/src/layouts/toolbar/notifPopover/notifPopover.vue +++ b/src/layouts/toolbar/notifPopover/notifPopover.vue @@ -86,6 +86,7 @@ +
@@ -110,8 +111,7 @@ />
- - +
+ + +
+ + +
+
{{ tools.timeAgo(notif.datenotif) }} diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts index cde269f8..f38f24ba 100755 --- a/src/model/GlobalStore.ts +++ b/src/model/GlobalStore.ts @@ -889,6 +889,11 @@ export interface ICircuitList { inscription_date?: Date } +export interface IMyCircuit { + _id: number + circuitname: string + date: Date +} export interface ICircuit { _id: number @@ -899,7 +904,6 @@ export interface ICircuit { longdescr: string systemUserDescr: string systemUserId: string - founderUserId: string totCircolante?: number totTransato?: number nome_valuta: string diff --git a/src/model/UserStore.ts b/src/model/UserStore.ts index 5db95bf7..da286d55 100755 --- a/src/model/UserStore.ts +++ b/src/model/UserStore.ts @@ -1,6 +1,6 @@ import { IToken } from '@model/other' import { ICart, IOrderCart, IShareWithUs } from '@src/model/Products' -import { IAccount, ICircuit, ICircuitList, IGallery, IImgGallery } from '@model/GlobalStore' +import { IAccount, ICircuit, ICircuitList, IGallery, IImgGallery, IMyCircuit } from '@model/GlobalStore' const enum ESexType { None = 0, @@ -87,6 +87,7 @@ export interface IUserProfile { friends: IFriends[] req_friends: IFriends[] mygroups: IMyGroup[] + mycircuits: IMyCircuit[] manage_mygroups: IMyGroup[] notifs: IUserNotifType[] notif_idCities: number[] @@ -103,8 +104,7 @@ export interface IUserProfile { asked_circuits: any[] refused_circuits: any[] - listUserAccounts: IAccount[] - manage_mycircuits?: ICircuit[] + manage_mycircuits: ICircuit[] } export interface IPaymentType { diff --git a/src/statics/lang/enUs.js b/src/statics/lang/enUs.js index d8167785..618b93c5 100755 --- a/src/statics/lang/enUs.js +++ b/src/statics/lang/enUs.js @@ -882,8 +882,7 @@ const msg_enUs = { test: 'Test', groups: 'Gruppi', request_friends: 'Richieste Amicizia', - request_sent_friends: 'Richieste Inviate', - request_sent_groups: 'Richieste Inviate', + request_sent: 'Richieste Inviate', request_trust: 'Richieste Fiducia', trusted: 'Fiducia Accettata', rejected: 'Rifiutati', diff --git a/src/statics/lang/es.js b/src/statics/lang/es.js index 337698bb..2ed2ab2f 100755 --- a/src/statics/lang/es.js +++ b/src/statics/lang/es.js @@ -808,8 +808,7 @@ const msg_es = { test: 'Test', groups: 'Gruppi', request_friends: 'Rich. Amicizia', - request_sent_friends: 'Rich. Inviate', - request_sent_groups: 'Rich. Inviate', + request_sent: 'Rich. Inviate', request_trust: 'Rich. Fiducia', trusted: 'Fiducia Accettata', rejected: 'Rifiutati', diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js index bf6bf854..385bc46c 100755 --- a/src/statics/lang/it.js +++ b/src/statics/lang/it.js @@ -212,10 +212,10 @@ const msg_it = { deletedgroup: 'Gruppo Eliminato', domanda_addtofriend: 'Aggiungere agli amici {username}?', domanda_addtogroup: 'Aggiungi {username} al gruppo {groupname}?', - domanda_addtocircuit: 'Aggiungi {username} al Circuito {name}?', + domanda_addtocircuit: 'Aggiungi {username} al Circuito {circuitname}?', addedfriend: 'Aggiunto alla lista di Amici', addedgroup: 'Aggiunto al Gruppo', - addedcircuit: 'Aggiunto al Circuito {name}', + addedcircuit: 'Aggiunto al Circuito {circuitname}', domanda_trusted: 'Accettare la Fiducia a {username}?', trusted: 'Accettato la Fiducia', domanda_ask_friend: 'Chiedere l\'Amicizia a {username}?', @@ -994,8 +994,7 @@ const msg_it = { test: 'Test', groups: 'Gruppi', request_friends: 'Richieste Amicizia', - request_sent_friends: 'Richieste Inviate', - request_sent_groups: 'Richieste Inviate', + request_sent: 'Richieste Inviate', request_trust: 'Richieste Fiducia', trusted: 'Fiducia Accettata', rejected: 'Rifiutati', @@ -1025,23 +1024,23 @@ const msg_it = { info1: 'Info', subscribes: 'Membri', cancel_ask: 'Annulla la richiesta', - refuse_ask: 'Rifiuta la richiesta (con avviso)', + refuse_ask: 'Rifiuta la richiesta', cancel_ask_short: 'Annulla richiesta', refuse_ask_short: 'Rifiuta la richiesta', + member: 'membro', members: 'membri', admin: 'amministratore', admins: 'Amministratori', + createdby: 'Creato da {username} in data {date}', + lastmodify: 'Ultima modifica {date}', }, groups: { info: 'Informazioni su questo gruppo', - member: 'membro', accepted: 'Ingresso Accettato', refused: 'Ingresso Rifiutato', deleted: 'Cancellato', blocked: 'Bloccato', removed: 'Rimosso', - createdby: 'Creato da {username} in data {date}', - lastmodify: 'Ultima modifica {date}', ask_group: 'Chiedi di entrare nel Gruppo', exit_group: 'Esci dal Gruppo', delete_group: 'Elimina il Gruppo', @@ -1094,13 +1093,14 @@ const msg_it = { preferences: 'Preferenze', }, circuit: { + info: 'Informazioni su questo Circuito', name: 'Nome Circuito', path: 'Nome Pagina', subname: 'SottoNome', descr: 'Descrizione', systemUserDescr: 'Descr Utente di Sistema', systemUserId: 'ID Utente di Sistema', - founderUserId: 'ID Fondatore', + founder: 'Fondatore', totCircolante: 'Totale Circolante', totTransato: 'Totale Transato', nome_valuta: 'Nome Valuta', @@ -1122,18 +1122,31 @@ const msg_it = { img_logo: 'NomeFile Logo', regulation: 'Regolamento', - domanda_ask: 'Chiedere l\'invito al Circuito {name}?', - domanda_revoke: 'Revocare la richiesta al Circuito {name}?', - askedto: 'Chiesto l\'invito al Circuito {name}', - revoketo: 'Revocato la richiesta d\'invito al Circuito {name}', + domanda_ask: 'Chiedere l\'invito al Circuito {circuitname}?', + domanda_revoke: 'Revocare la richiesta al Circuito {circuitname}?', + askedto: 'Chiesto l\'invito al Circuito {circuitname}', + revoketo: 'Revocato la richiesta d\'invito al Circuito {circuitname}', domanda_remove: 'Rimuovere dal Circuito {username} ?', removed: 'Rimosso dal Circuito', - domanda_removerecord: 'Sicuro di voler Eliminare il Circuito {name} ?', - deleted: 'Circuito {name} Eliminato', + domanda_removerecord: 'Sicuro di voler Eliminare il Circuito {circuitname} ?', + deleted: 'Circuito {circuitname} Eliminato', delete: 'Elimina il Circuito', + addasadmin: 'Aggiungi come Admin del Circuito', + remove_as_admin: 'Rimuovi come Admin del Circuito', + remove_from_mycircuit: 'Rimuovi dal Circuito', ask: 'Chiedi di entrare nel Circuito', exit: 'Esci dal Circuito', accept: 'Accetta la richiesta', + exit_circuit: 'Esci dal Circuito', + domanda_cancel_req: 'Annullare la richiesta d\'invito di {username} al Circuito {circuitname}?', + cancel_req: 'Annullata la richiesta al Circuito {circuitname}', + remove_from_mylist: 'Rimuovi dal Circuito', + reject_ask: 'Rifiuta l\'ingresso dal Circuito', + domanda_exit_fromcircuit: 'Uscire dal CIrcuito {groupname} ?', + domanda_addadminofcircuit: 'Aggiungere {username} come Amministratore del CIrcuito {circuitname} ?', + domanda_removeadminofcircuit: 'Rimuovere {username} dall\' incarico di Amministratore del CIrcuito {circuitname} ?', + domanda_refuse_circuit: 'Rifiutare la richiesta di {username} per entrare nel Circuito {circuitname}?', + refusedcircuit: 'Rifiutato a {username} la richiesta di entrare nel Circuito', }, account: { diff --git a/src/store/Modules/costanti.ts b/src/store/Modules/costanti.ts index 1740d129..89e7fbd7 100755 --- a/src/store/Modules/costanti.ts +++ b/src/store/Modules/costanti.ts @@ -192,7 +192,7 @@ export const costanti = { MANAGE_GROUPS: 31, ADMIN_GROUPS: 40, FIND_CIRCUIT: 50, - MY_USERACCOUNTS: 51, + MY_CIRCUITS: 51, CREATE_CIRCUIT: 52, MANAGE_CIRCUITS: 53, ADMIN_CIRCUITS: 54, @@ -207,10 +207,11 @@ export const costanti = { REQ_ADD_USER_TO_GROUP: 100, REQ_REMOVE_USER_TO_GROUP: 101, REQ_ADD_USER_TO_CIRCUIT: 110, + REQ_REMOVE_USER_TO_CIRCUIT: 111, FILTER_NESSUNO: 0, FILTER_TUTTI: -100, - TABLES_ARRAY: ['mygroups'], + TABLES_ARRAY: ['mygroups', 'circuits'], TABLES_USERNAME_DATE: ['friends', 'friendsandme'], TABLES_IMG_USERNAME: ['friends', 'friendsandme'], diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts index 4bba9ee0..827af55b 100755 --- a/src/store/Modules/fieldsTable.ts +++ b/src/store/Modules/fieldsTable.ts @@ -594,7 +594,7 @@ export const colmyUserGroup = [ }),*/ AddCol({ name: 'admins', - label_trans: 'groups.admins', + label_trans: 'shared.admins', fieldtype: costanti.FieldType.multiselect, jointable: 'friendsandme', field_outtype: costanti.FieldType.object, @@ -2382,15 +2382,17 @@ export const colTableSubCashCategory = [ export const colTableCircuitComplete = [ AddCol({ name: 'Num', label_trans: 'circuit.num', fieldtype: costanti.FieldType.number }), - AddCol({ name: 'groupnameId', label_trans: 'circuit.groupnameId' }), // da togliere poi - AddCol({ name: 'name', label_trans: 'circuit.name' }), + AddCol({ name: 'groupnameId', label_trans: 'circuit.groupnameId', fieldtype: costanti.FieldType.select, jointable: 'mygroups' }), // da togliere poi + AddCol({ name: 'name', label_trans: 'circuit.name', + maxlength: 40, + showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage }), AddCol({ name: 'path', label_trans: 'circuit.path' }), AddCol({ name: 'subname', label_trans: 'circuit.subname' }), AddCol({ name: 'longdescr', label_trans: 'circuit.descr', fieldtype: costanti.FieldType.html }), AddCol({ name: 'regulation', label_trans: 'circuit.regulation', fieldtype: costanti.FieldType.html }), AddCol({ name: 'systemUserDescr', label_trans: 'circuit.systemUserDescr' }), AddCol({ name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users', }), - AddCol({ name: 'founderUserId', label_trans: 'circuit.founderUserId', fieldtype: costanti.FieldType.select, jointable: 'users', }), + AddCol({ name: 'createdBy', label_trans: 'circuit.founder', fieldtype: costanti.FieldType.select, jointable: 'users', }), AddCol({ name: 'totCircolante', label_trans: 'circuit.totCircolante', fieldtype: costanti.FieldType.number }), AddCol({ name: 'totTransato', label_trans: 'circuit.totTransato', fieldtype: costanti.FieldType.number }), AddCol({ name: 'nome_valuta', label_trans: 'circuit.nome_valuta' }), @@ -2412,7 +2414,7 @@ export const colTableCircuitComplete = [ AddCol({ name: 'img_logo', label_trans: 'circuit.img_logo' }), AddCol({ name: 'admins', - label_trans: 'groups.admins', + label_trans: 'shared.admins', fieldtype: costanti.FieldType.multiselect, jointable: 'friendsandme', field_outtype: costanti.FieldType.object, @@ -2437,13 +2439,29 @@ export const colTableCircuitComplete = [ ] export const colTableCircuit = [ - AddCol({ name: 'groupnameId', label_trans: 'circuit.groupnameId' }), // da togliere poi - AddCol({ name: 'name', label_trans: 'circuit.name' }), + AddCol({ name: 'groupnameId', label_trans: 'circuit.groupnameId', fieldtype: costanti.FieldType.select, jointable: 'mygroups' }), // da togliere poi + AddCol({ name: 'name', label_trans: 'circuit.name', + maxlength: 40, + showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage }), AddCol({ name: 'path', label_trans: 'circuit.path' }), AddCol({ name: 'subname', label_trans: 'circuit.subname' }), AddCol({ name: 'longdescr', label_trans: 'circuit.descr', fieldtype: costanti.FieldType.html }), AddCol({ name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users', }), - AddCol({ name: 'founderUserId', label_trans: 'circuit.founderUserId', fieldtype: costanti.FieldType.select, jointable: 'users', }), + AddCol({ name: 'createdBy', label_trans: 'circuit.founder', fieldtype: costanti.FieldType.select, jointable: 'users', }), + AddCol({ + name: 'date_created', label_trans: 'reg.pub_created', fieldtype: costanti.FieldType.onlydate, + required: false, + visible: false, + sortable: true, + showWhen: 0 + }), + AddCol({ + name: 'date_updated', label_trans: 'reg.pub_updated', fieldtype: costanti.FieldType.onlydate, + required: false, + visible: false, + sortable: true, + showWhen: 0 + }), AddCol({ name: 'nome_valuta', label_trans: 'circuit.nome_valuta' }), AddCol({ name: 'symbol', label_trans: 'circuit.symbol' }), AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }), @@ -2459,6 +2477,7 @@ export const colmyUserCircuit = [ AddCol({ name: 'deperibile', label_trans: 'account.deperibile', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'importo_iniziale', label_trans: 'account.importo_iniziale', fieldtype: costanti.FieldType.number }), AddCol({ name: 'saldo', label_trans: 'account.saldo', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: costanti.FieldType.boolean }), AddCol(DeleteRec), AddCol(DuplicateRec), ] diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts index 8b5b1ab6..bfb0c1ab 100644 --- a/src/store/Modules/tools.ts +++ b/src/store/Modules/tools.ts @@ -12,7 +12,7 @@ import { ITodo, IUserFields, Privacy, - TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery, IMsgGlobParam, IUserExport, ISpecialField, IAccount, + TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery, IMsgGlobParam, IUserExport, ISpecialField, IAccount, IMyCircuit, } from '@model' import { addToDate } from '@quasar/quasar-ui-qcalendar' @@ -4734,26 +4734,26 @@ export const tools = { }, - addToMyCircuits($q: any, username: string, name: string) { + addToMyCircuits($q: any, username: string, circuitname: string) { const userStore = useUserStore() const notifStore = useNotifStore() $q.dialog({ - message: t('db.domanda_addtocircuit', { username, name }), + message: t('db.domanda_addtocircuit', { username, circuitname }), ok: { label: t('dialog.yes'), push: true }, cancel: { label: t('dialog.cancel') }, title: t('db.domanda') }).onOk(() => { - userStore.setCircuitCmd($q, t, username, name, shared_consts.CIRCUITCMD.SET, true) + userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.SET, true) .then((res: any) => { if (res) { notifStore.updateNotification = true - if (userStore.my.profile.listUserAccounts) - userStore.my.profile.listUserAccounts = [...userStore.my.profile.listUserAccounts, res] + if (userStore.my.profile.mycircuits) + userStore.my.profile.mycircuits = [...userStore.my.profile.mycircuits, res] else - userStore.my.profile.listUserAccounts = [res] - tools.showPositiveNotif($q, t('db.addedcircuit', { name })) + userStore.my.profile.mycircuits = [res] + tools.showPositiveNotif($q, t('db.addedcircuit', { circuitname })) } }) }) @@ -4798,7 +4798,9 @@ export const tools = { userStore.setGroupsCmd($q, t, username, groupnameDest, shared_consts.GROUPSCMD.REFUSE_REQ_GROUP, null).then((res) => { if (res) { notifStore.updateNotification = true - userStore.my.profile.asked_groups = userStore.my.profile.asked_groups.filter((rec: IMyGroup) => rec.groupname !== groupnameDest) + if (username === userStore.my.username) { + userStore.my.profile.asked_groups = userStore.my.profile.asked_groups.filter((rec: IMyGroup) => rec.groupname !== groupnameDest) + } tools.showPositiveNotif($q, t('db.refusedgroup', { username })) } }) @@ -4836,9 +4838,11 @@ export const tools = { userStore.setGroupsCmd($q, t, username, groupnameDest, shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUP, null).then((res) => { if (res) { if (userStore.my.profile.mygroups) { - userStore.my.profile.mygroups = userStore.my.profile.mygroups.filter((rec: IMyGroup) => rec.groupname !== groupnameDest) - tools.showPositiveNotif($q, t('db.removedgroup')) + if (username === userStore.my.username) { + userStore.my.profile.mygroups = userStore.my.profile.mygroups.filter((rec: IMyGroup) => rec.groupname !== groupnameDest) + } } + tools.showPositiveNotif($q, t('db.removedgroup')) } }) }) @@ -5025,7 +5029,9 @@ export const tools = { userStore.setGroupsCmd($q, t, username, groupnameDest, shared_consts.GROUPSCMD.CANCEL_REQ_GROUP, null).then((res) => { if (res) { - userStore.my.profile.asked_groups = userStore.my.profile.asked_groups.filter((rec: IMyGroup) => rec.groupname !== groupnameDest) + if (username === userStore.my.username) { + userStore.my.profile.asked_groups = userStore.my.profile.asked_groups.filter((rec: IMyGroup) => rec.groupname !== groupnameDest) + } tools.showPositiveNotif($q, t('db.cancel_req_group')) } }) @@ -5187,15 +5193,15 @@ export const tools = { return risultato }, - setRequestCircuit($q: any, username: string, name: string, value: boolean) { + setRequestCircuit($q: any, username: string, circuitname: string, value: boolean) { const userStore = useUserStore() let msg = '' if (value) { - msg = t('circuit.domanda_ask', { name }) + msg = t('circuit.domanda_ask', { circuitname }) } else { - msg = t('circuit.domanda_revoke', { name }) + msg = t('circuit.domanda_revoke', { circuitname }) } $q.dialog({ @@ -5210,17 +5216,17 @@ export const tools = { title: t('db.domanda') }).onOk(() => { - userStore.setCircuitCmd($q, t, username, name, shared_consts.CIRCUITCMD.REQ, value) + userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REQ, value) .then((res: any) => { if (res) { if (value) { // ADD to req userStore.my.profile.asked_circuits.push(res) - tools.showPositiveNotif($q, t('circuit.askedto', { name })) + tools.showPositiveNotif($q, t('circuit.askedto', { circuitname })) } else { // REMOVE to req - userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== name) - tools.showPositiveNotif($q, t('circuit.revoketo', { name })) + userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname) + tools.showPositiveNotif($q, t('circuit.revoketo', { circuitname })) } } else { @@ -5230,7 +5236,50 @@ export const tools = { }) }, - removeFromMyCircuits($q: any, username: string, name: string, domanda: any = '') { + cancelReqCircuit($q: any, username: string, circuitname: string) { + const userStore = useUserStore() + $q.dialog({ + message: t('circuit.domanda_cancel_req', { username, circuitname }), + ok: { label: t('dialog.yes'), push: true }, + cancel: { label: t('dialog.cancel') }, + title: t('db.domanda') + }).onOk(() => { + + userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.CANCEL_REQ, null).then((res) => { + if (res) { + if (username === userStore.my.username) { + userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname) + } + tools.showPositiveNotif($q, t('db.cancel_req_group')) + } + }) + }) + }, + + refuseReqCircuit($q: any, username: string, circuitname: string) { + + const userStore = useUserStore() + const notifStore = useNotifStore() + $q.dialog({ + message: t('circuit.domanda_refuse_circuit', { username, circuitname }), + ok: { label: t('dialog.yes'), push: true }, + cancel: { label: t('dialog.cancel') }, + title: t('db.domanda') + }).onOk(() => { + + userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REFUSE_REQ, null).then((res) => { + if (res) { + notifStore.updateNotification = true + if (username === userStore.my.username) { + userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname) + } + tools.showPositiveNotif($q, t('db.refusedcircuit', { username })) + } + }) + }) + }, + + removeFromMyCircuits($q: any, username: string, circuitname: string, domanda: any = '') { const userStore = useUserStore() $q.dialog({ @@ -5240,32 +5289,80 @@ export const tools = { title: t('db.domanda') }).onOk(() => { - userStore.setCircuitCmd($q, t, username, name, shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST, null).then((res) => { + userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST, null).then((res) => { if (res) { - if (userStore.my.profile.listUserAccounts) { - userStore.my.profile.listUserAccounts = userStore.my.profile.listUserAccounts.filter((rec: IAccount) => rec.name !== name) - tools.showPositiveNotif($q, t('circuit.removed')) + if (userStore.my.profile.mycircuits && username === userStore.my.username) { + userStore.my.profile.mycircuits = userStore.my.profile.mycircuits.filter((rec: IMyCircuit) => rec.circuitname !== circuitname) + } + tools.showPositiveNotif($q, t('circuit.removed')) + } + }) + }) + }, + + addtoAdminOfCircuit($q: any, username: string, circuitname: string, domanda: any = '') { + const userStore = useUserStore() + + $q.dialog({ + message: domanda ? domanda : t('db.domanda_addadminofcircuit', { username, circuitname }), + ok: { label: t('dialog.yes'), push: true }, + cancel: { label: t('dialog.cancel') }, + title: t('db.domanda') + }).onOk(() => { + + userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.ADDADMIN, null).then((res) => { + if (res) { + const mycircuit = userStore.my.profile.manage_mycircuits.find((rec: ICircuit) => rec.name === circuitname) + console.log('mycircuit', mycircuit) + if (mycircuit && mycircuit.admins) { + mycircuit.admins = [...mycircuit.admins, {username, date: new Date}] + console.log('mycircuit.admins', mycircuit.admins) + tools.showPositiveNotif($q, t('db.addedtoadmin', { username })) } } }) }) }, - DeleteCircuit($q: any, username: string, name: string, domanda: any = '') { + removeAdminOfCircuit($q: any, username: string, circuitname: string, domanda: any = '') { const userStore = useUserStore() $q.dialog({ - message: domanda ? domanda : t('db.domanda_removerecord', { name }), + message: domanda ? domanda : t('db.domanda_removeadminofcircuit', { username, circuitname }), ok: { label: t('dialog.yes'), push: true }, cancel: { label: t('dialog.cancel') }, title: t('db.domanda') }).onOk(() => { - userStore.setCircuitCmd($q, t, username, name, shared_consts.CIRCUITCMD.DELETE, null).then((res) => { + userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REMOVEADMIN, null).then((res) => { + if (res) { + const mygrp = userStore.my.profile.manage_mycircuits.find((rec: ICircuit) => rec.name === circuitname) + console.log('mygrp', mygrp) + if (mygrp && mygrp.admins) { + mygrp.admins = mygrp.admins.filter((rec: any) => rec.username !== username) + console.log('mygrp.admins', mygrp.admins) + tools.showPositiveNotif($q, t('db.removedtoadmin', { username })) + } + } + }) + }) + }, + + DeleteCircuit($q: any, username: string, circuitname: string, domanda: any = '') { + const userStore = useUserStore() + + $q.dialog({ + message: domanda ? domanda : t('db.domanda_removerecord', { circuitname }), + ok: { label: t('dialog.yes'), push: true }, + cancel: { label: t('dialog.cancel') }, + title: t('db.domanda') + }).onOk(() => { + + userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.DELETE, null).then((res) => { if (res) { if (userStore.my.profile.manage_mycircuits) { - userStore.my.profile.manage_mycircuits = userStore.my.profile.manage_mycircuits.filter((rec: ICircuit) => rec.name !== name) - tools.showPositiveNotif($q, t('circuit.deleted', { name } )) + userStore.my.profile.manage_mycircuits = userStore.my.profile.manage_mycircuits.filter((rec: ICircuit) => rec.name !== circuitname) + tools.showPositiveNotif($q, t('circuit.deleted', { circuitname } )) } } }) @@ -5274,6 +5371,7 @@ export const tools = { iCanShowCircuitsMember(circuit: ICircuit) { + // ++Todo: Posso vedere i membri dei Circuiti ??? /* if (grp && grp.visibility!.includes(shared_consts.Visibility_Group.PRIVATE)) { // Only if I am part of this group @@ -5284,14 +5382,14 @@ export const tools = { }, - iAmAdminCircuit(name: string) { + iAmAdminCircuit(circuitname: string) { const userStore = useUserStore() let risultato = false if (userStore.my.profile.manage_mycircuits) { const ris = userStore.my.profile.manage_mycircuits.find((circuit: ICircuit) => { - if (circuit.name === name) { + if (circuit.name === circuitname) { return true } }) @@ -5405,7 +5503,7 @@ export const tools = { }, - isUserTheCreatorOfThCircuit(name: string, username: string) { + isUserTheCreatorOfTheCircuit(name: string, username: string) { const userStore = useUserStore() let risultato = false @@ -5941,11 +6039,12 @@ export const tools = { circuitStore.listcircuits = ris.listcircuits ? ris.listcircuits : [] // to Refresh Data User Accounts: - userStore.my.profile.listUserAccounts = ris.listUserAccounts ? ris.listUserAccounts : [] + userStore.my.profile.mycircuits = ris.mycircuits ? ris.mycircuits : [] // Others not loaded at the beginning: - userStore.my.profile.asked_circuits = ris.listSentRequestCircuits ? ris.listSentRequestCircuits : [] - userStore.my.profile.refused_circuits = ris.listRefusedCircuits ? ris.listRefusedCircuits : [] + + userStore.my.profile.asked_circuits = ris.asked_circuits ? ris.asked_circuits : [] + userStore.my.profile.refused_circuits = ris.refused_circuits ? ris.refused_circuits : [] return [{ userId: userStore.my._id }] } }) diff --git a/src/store/UserStore.ts b/src/store/UserStore.ts index f38143b6..0b2ee033 100755 --- a/src/store/UserStore.ts +++ b/src/store/UserStore.ts @@ -1,7 +1,7 @@ import { defineStore } from 'pinia' import { - ICircuit, + ICircuit, IMyCircuit, IFriends, IMsgGlobParam, ISigninOptions, ISignupOptions, IUserFields, IUserNotifType, IUserProfile, IUserState, @@ -54,6 +54,7 @@ export const DefaultUser: IUserFields = { friends: [], req_friends: [], mygroups: [], + mycircuits: [], manage_mygroups: [], asked_friends: [], asked_groups: [], @@ -66,7 +67,6 @@ export const DefaultUser: IUserFields = { notif_sector_goods: [], asked_circuits: [], refused_circuits: [], - listUserAccounts: [], manage_mycircuits: [], }, cart: { @@ -110,6 +110,7 @@ export const DefaultProfile: IUserProfile = { friends: [], req_friends: [], mygroups: [], + mycircuits: [], manage_mygroups: [], asked_friends: [], asked_groups: [], @@ -123,7 +124,6 @@ export const DefaultProfile: IUserProfile = { asked_circuits: [], refused_circuits: [], - listUserAccounts: [], manage_mycircuits: [], } @@ -288,26 +288,26 @@ export const useUserStore = defineStore('UserStore', { }, - IsAskedCircuitByName(groupname: string): boolean { + IsAskedCircuitByName(name: string): boolean { if (this.my.profile.asked_circuits) - return this.my.profile.asked_circuits.findIndex((rec: IMyGroup) => rec.groupname === groupname) >= 0 + return this.my.profile.asked_circuits.findIndex((rec: ICircuit) => rec.name === name) >= 0 else return false }, - IsMyCircuitByName(name: string): boolean { + IsMyCircuitByName(circuitname: string): boolean { - if (this.my.profile.manage_mycircuits) - return this.my.profile.manage_mycircuits.findIndex((rec: ICircuit) => rec.name === name) >= 0 + if (this.my.profile.mycircuits) + return this.my.profile.mycircuits.findIndex((rec: IMyCircuit) => rec.circuitname === circuitname) >= 0 else return false }, - IsRefusedCircuitByName(name: string): boolean { + IsRefusedCircuitByName(circuitname: string): boolean { if (this.my.profile.refused_circuits) - return this.my.profile.refused_circuits.findIndex((rec: ICircuit) => rec.name === name) >= 0 + return this.my.profile.refused_circuits.findIndex((rec: ICircuit) => rec.name === circuitname) >= 0 else return false }, @@ -1108,7 +1108,7 @@ export const useUserStore = defineStore('UserStore', { }, - async loadCIrcuit(path: string, idnotif: string) { + async loadCircuit(path: string, idnotif: string) { const data = { path, idnotif, @@ -1210,8 +1210,8 @@ export const useUserStore = defineStore('UserStore', { }, - async setCircuitCmd($q: any, t: any, usernameOrig: string, name: string, cmd: number, value: any) { - return Api.SendReq('/users/circuits/cmd', 'POST', { usernameOrig, name, cmd, value }) + async setCircuitCmd($q: any, t: any, usernameOrig: string, circuitname: string, cmd: number, value: any) { + return Api.SendReq('/users/circuits/cmd', 'POST', { usernameOrig, circuitname, cmd, value }) .then((res) => { this.updateTables = true return res.data diff --git a/src/views/user/mycircuit/mycircuit.ts b/src/views/user/mycircuit/mycircuit.ts index 6ccaf430..7e9567e6 100755 --- a/src/views/user/mycircuit/mycircuit.ts +++ b/src/views/user/mycircuit/mycircuit.ts @@ -67,14 +67,10 @@ export default defineComponent({ return userStore.my.profile } - function circuitname() { - return userStore.my.username - } - async function loadCircuit() { // Carica il profilo di quest'utente if (path.value) { - await userStore.loadCIrcuit(path.value, idnotif.value).then(({ data, status }: {data: any, status: number}) => { + await userStore.loadCircuit(path.value, idnotif.value).then(({ data, status }: {data: any, status: number}) => { console.log('data', data) if (data) { circuit.value = data.circuit @@ -99,7 +95,9 @@ export default defineComponent({ await loadCircuit() searchList.value = [] - filtercustom.value = [{ 'profile.listUserAccounts': { $elemMatch: {circuitId: {$eq: path.value }} } } ] + if (circuit.value) { + filtercustom.value = [{ 'profile.mycircuits': { $elemMatch: { circuitname: { $eq: circuit.value.name } } } }] + } arrfilterand.value = [] filtercustom_rich.value = [] @@ -118,8 +116,6 @@ export default defineComponent({ } - - function extraparams() { let lk_tab = 'users' let lk_LF = 'userId' @@ -175,7 +171,6 @@ export default defineComponent({ onMounted(mounted) return { - name, profile, tools, costanti, @@ -186,7 +181,6 @@ export default defineComponent({ filtroutente, showPic, - circuitname, userStore, t, animation, diff --git a/src/views/user/mycircuit/mycircuit.vue b/src/views/user/mycircuit/mycircuit.vue index ace4be7f..f23568f8 100755 --- a/src/views/user/mycircuit/mycircuit.vue +++ b/src/views/user/mycircuit/mycircuit.vue @@ -53,7 +53,7 @@ + @click="tools.removeFromMyCircuits($q, userStore.my.username, circuit.name, $t('circuit.domanda_exit_fromcircuit', {name: circuit.name }))"> @@ -78,28 +78,17 @@ v-if="userStore.IsAskedCircuitByName(circuit.name) && !userStore.IsMyCircuitByName(circuit.name)" icon="fas fa-user-minus" flat :label="$t('shared.cancel_ask_short')" - @click="tools.cancelReqCircuits($q, userStore.my.username, circuit.name)" + @click="tools.cancelReqCircuit($q, userStore.my.username, circuit.name)" />
- - - - @@ -116,25 +105,25 @@
- {{ $t('circuit.createdby', { + {{ $t('shared.createdby', { username: circuit.createdBy, date: tools.getstrDateYY(circuit.date_created), }) }}
-
+
- {{ $t('circuit.lastmodify', { + {{ $t('shared.lastmodify', { date: tools.getstrDateYY(circuit.date_updated), }) }}
- {{ numUsers() }} {{ numUsers() === 1 ? t('circuit.member') : t('shared.members') }} + {{ numUsers() }} {{ numUsers() === 1 ? t('shared.member') : t('shared.members') }}
- {{ numAdmins() }} {{ numAdmins() === 1 ? t('circuit.admin') : t('shared.admins') }} + {{ numAdmins() }} {{ numAdmins() === 1 ? t('shared.admin') : t('shared.admins') }}
- - + + @@ -209,9 +198,9 @@ :prop_searchList="searchList" :showType="costanti.SHOW_USERINFO" :showCol="false" - :extrafield="name" + :circuitname="circuit.name" :extraparams="extraparams()" - :visufind="tools.iAmAdminCircuit(name) ? costanti.REQ_REMOVE_USER_TO_CIRCUIT : costanti.FIND_PEOPLE" + :visufind="tools.iAmAdminCircuit(circuit.name) ? costanti.REQ_REMOVE_USER_TO_CIRCUIT : costanti.FIND_PEOPLE" > @@ -219,7 +208,7 @@ @@ -250,7 +239,7 @@ @@ -291,7 +280,7 @@
- {{ name }} + {{ circuit.path }}
@@ -312,7 +301,7 @@ full-height full-width > - +
diff --git a/src/views/user/mygroup/mygroup.vue b/src/views/user/mygroup/mygroup.vue index 157ef8c6..9241a0ce 100755 --- a/src/views/user/mygroup/mygroup.vue +++ b/src/views/user/mygroup/mygroup.vue @@ -120,14 +120,14 @@
- {{ $t('groups.createdby', { + {{ $t('shared.createdby', { username: mygrp.createdBy, date: tools.getstrDateYY(mygrp.date_created), }) }}
-
+
- {{ $t('groups.lastmodify', { + {{ $t('shared.lastmodify', { date: tools.getstrDateYY(mygrp.date_updated), }) }}
@@ -167,11 +167,11 @@
- {{ numUsers() }} {{ numUsers() === 1 ? t('groups.member') : t('shared.members') }} + {{ numUsers() }} {{ numUsers() === 1 ? t('shared.member') : t('shared.members') }}
- {{ numAdmins() }} {{ numAdmins() === 1 ? t('groups.admin') : t('shared.admins') }} + {{ numAdmins() }} {{ numAdmins() === 1 ? t('shared.admin') : t('shared.admins') }}
[]) + const listcircuitsfiltered = ref([]) function profile() { @@ -87,6 +89,12 @@ export default defineComponent({ listgroupsfiltered.value = [] } + try { + listcircuitsfiltered.value = myuser.value.profile.mycircuits + } catch (e) { + listcircuitsfiltered.value = [] + } + } }) diff --git a/src/views/user/myprofile/myprofile.vue b/src/views/user/myprofile/myprofile.vue index df59d2ca..d04ebba2 100755 --- a/src/views/user/myprofile/myprofile.vue +++ b/src/views/user/myprofile/myprofile.vue @@ -203,6 +203,18 @@ +
+
+ + + + + + +