Debug and refactor
This commit is contained in:
parent
90a22b6025
commit
2a5f878608
|
@ -22,6 +22,14 @@ export default {
|
||||||
leave: 'group/ed/leave',
|
leave: 'group/ed/leave',
|
||||||
|
|
||||||
},
|
},
|
||||||
|
forms:{
|
||||||
|
// get:'keyvalue/forms/get',
|
||||||
|
// list:'keyvalue/forms/list',
|
||||||
|
// add:'keyvalue/forms/add',
|
||||||
|
// edit:'keyvalue/forms/edit',
|
||||||
|
// delete:'keyvalue/forms/delete',
|
||||||
|
groupTypes:'entity/types/list'
|
||||||
|
},
|
||||||
lobbies: {
|
lobbies: {
|
||||||
list: 'group/ve/get/lobby/1',
|
list: 'group/ve/get/lobby/1',
|
||||||
create: 'group/ed/set',
|
create: 'group/ed/set',
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
@import "../../common/scss/mixin";
|
@import "./mixin.scss";
|
||||||
@import "../../common/scss/placeholder";
|
@import "./placeholder";
|
||||||
|
|
||||||
// @import "./javad/list-mixins";
|
// @import "./javad/list-mixins";
|
||||||
// @import "./javad/list-variables";
|
// @import "./javad/list-variables";
|
||||||
|
@ -51,7 +51,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@import "./components/group/group";
|
@import "./components/group/group";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,7 +69,7 @@
|
||||||
opacity: 0.8;
|
opacity: 0.8;
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
font-family: 'sahel-semi-bold';
|
font-family: "sahel-semi-bold";
|
||||||
font-size: 1.3rem;
|
font-size: 1.3rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
174
assets/chat/scss/mixin.scss
Normal file
174
assets/chat/scss/mixin.scss
Normal file
|
@ -0,0 +1,174 @@
|
||||||
|
|
||||||
|
@mixin textOverflow($maxWidth) {
|
||||||
|
max-width: $maxWidth;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
// &:hover {
|
||||||
|
// overflow:visible;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin transition($all) {
|
||||||
|
-webkit-transition: $all;
|
||||||
|
-ms-transition: $all;
|
||||||
|
transition: $all;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin flexbox {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -moz-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin transform($transforms) {
|
||||||
|
-webkit-transform: $transforms;
|
||||||
|
-moz-transform: $transforms;
|
||||||
|
-ms-transform: $transforms;
|
||||||
|
transform: $transforms;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin transition($all) {
|
||||||
|
-webkit-transition: $all;
|
||||||
|
-ms-transition: $all;
|
||||||
|
transition: $all;
|
||||||
|
}
|
||||||
|
@mixin lineclamp($num) {
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: $num;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
@mixin hexagon($color, $width, $height) {
|
||||||
|
background: $color;
|
||||||
|
position: relative;
|
||||||
|
width: $width;
|
||||||
|
height: $height;
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: -($height / 2) + 1;
|
||||||
|
left: 0;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-left: ($width / 2) solid transparent;
|
||||||
|
border-right: $width / 2 solid transparent;
|
||||||
|
border-bottom: $height / 2 solid $color;
|
||||||
|
}
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
bottom: -($height / 2) + 1;
|
||||||
|
left: 0;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-left: $width / 2 solid transparent;
|
||||||
|
border-right: $width / 2 solid transparent;
|
||||||
|
border-top: $height / 2 solid $color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin section-backgrounds($pic-address) {
|
||||||
|
//background-image: url($pic-address);
|
||||||
|
background-size: cover;
|
||||||
|
position: relative;
|
||||||
|
background-position: center;
|
||||||
|
&::before {
|
||||||
|
content: " ";
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-image: url("../img/dot-pattern.png");
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
&::after {
|
||||||
|
content: " ";
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: rgba($color: #000000, $alpha: 0.15);
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%horizontal-center {
|
||||||
|
@include flexbox;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
%flex-center {
|
||||||
|
@include flexbox;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
%normal-transition {
|
||||||
|
@include transition(all 0.3s ease-in-out);
|
||||||
|
}
|
||||||
|
|
||||||
|
%cover-link {
|
||||||
|
position: relative;
|
||||||
|
.cover-link {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//mixin
|
||||||
|
|
||||||
|
// @mixin bordersolid-w-t-pos($width, $type, $color, $bt: null) {
|
||||||
|
// @if $bt {
|
||||||
|
// #{$bt}: $width $type $color;
|
||||||
|
// } @else {
|
||||||
|
// border: $width $type $color;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
//mixin - border
|
||||||
|
|
||||||
|
@mixin border-transparent($width) {
|
||||||
|
border: $width solid transparent;
|
||||||
|
}
|
||||||
|
@mixin border($width, $color) {
|
||||||
|
border: $width solid $color;
|
||||||
|
}
|
||||||
|
@mixin border-top($width, $color) {
|
||||||
|
border-top: $width solid $color;
|
||||||
|
}
|
||||||
|
@mixin border-bottom($width, $color) {
|
||||||
|
border-bottom: $width solid $color;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin border-left($width, $color) {
|
||||||
|
border-left: $width solid $color;
|
||||||
|
}
|
||||||
|
@mixin border-right($width, $color) {
|
||||||
|
border-right: $width solid $color;
|
||||||
|
}
|
||||||
|
// End - mixin - border
|
||||||
|
|
||||||
|
@mixin btn-primary {
|
||||||
|
@extend %simple-btn;
|
||||||
|
border-color: var(--color-1);
|
||||||
|
border-radius: 20px;
|
||||||
|
min-width: 64px;
|
||||||
|
font-size: 14px;
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin font-icon-background-color($color) {
|
||||||
|
background: $color;
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
225
assets/chat/scss/placeholder.scss
Normal file
225
assets/chat/scss/placeholder.scss
Normal file
|
@ -0,0 +1,225 @@
|
||||||
|
|
||||||
|
%horizontal-center {
|
||||||
|
@include flexbox;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
%flex-center {
|
||||||
|
@include flexbox;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
%normal-transition {
|
||||||
|
@include transition(all 0.3s ease-in-out);
|
||||||
|
}
|
||||||
|
|
||||||
|
%cover-link {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.cover-link {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%overlay-position {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
%fixed-images {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
object-fit: cover;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
%pic-before-hover {
|
||||||
|
&::before {
|
||||||
|
content: " ";
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
background: radial-gradient(
|
||||||
|
circle,
|
||||||
|
rgba(0, 0, 0, 0) 0%,
|
||||||
|
rgba(0, 0, 0, 0.2413165949973739) 50%,
|
||||||
|
rgba(0, 0, 0, 0.4514006286108193) 100%
|
||||||
|
);
|
||||||
|
opacity: 0;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%simple-input {
|
||||||
|
border: 2px solid #f1f1f1;
|
||||||
|
color: var(--color-2);
|
||||||
|
font-size: 18px;
|
||||||
|
height: 48px;
|
||||||
|
outline: none;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding-right: 15px;
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
%simple-btn {
|
||||||
|
min-width: 112px;
|
||||||
|
height: 48px;
|
||||||
|
border: 2px solid #f1f1f1;
|
||||||
|
color: var(--color-1);
|
||||||
|
font-size: 16px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin-right: auto;
|
||||||
|
background: unset;
|
||||||
|
border-radius: 10px;
|
||||||
|
transition: all 0.5s ease-in-out;
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
border-color: var(--color-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:disabled {
|
||||||
|
filter: grayscale(1);
|
||||||
|
opacity: 0.7;
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%pastil-color {
|
||||||
|
.color-1:hover {
|
||||||
|
a {
|
||||||
|
border-color: #00b6e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
background: -webkit-linear-gradient(#00b6e3 0%, #81e6ff 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.color-1 {
|
||||||
|
background-color: #e8fcff;
|
||||||
|
|
||||||
|
a {
|
||||||
|
border-color: #00b6e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
background: -webkit-linear-gradient(#00b6e3 0%, #81e6ff 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.color-2:hover {
|
||||||
|
a {
|
||||||
|
border-color: #b03bd9;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
background: -webkit-linear-gradient(#b03bd9 0%, #dcbbff 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.color-2 {
|
||||||
|
background-color: #fef3ff;
|
||||||
|
|
||||||
|
a {
|
||||||
|
border-color: #b03bd9;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
background: -webkit-linear-gradient(#b03bd9 0%, #dcbbff 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.color-3:hover {
|
||||||
|
a {
|
||||||
|
border-color: #fb0;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
background: -webkit-linear-gradient(#fb0 0%, #ffdd81 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.color-3 {
|
||||||
|
background-color: #fffbe1;
|
||||||
|
|
||||||
|
a {
|
||||||
|
border-color: #fb0;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
background: -webkit-linear-gradient(#fb0 0%, #ffdd81 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.color-4:hover {
|
||||||
|
a {
|
||||||
|
border-color: #39b778;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
background: -webkit-linear-gradient(#39b778 0%, #88f57c 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.color-4 {
|
||||||
|
background-color: #e7fce7;
|
||||||
|
|
||||||
|
a {
|
||||||
|
border-color: #39b778;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
background: -webkit-linear-gradient(#39b778 0%, #88f57c 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.color-5 {
|
||||||
|
background-color: #e7fce7;
|
||||||
|
|
||||||
|
a {
|
||||||
|
border-color: #c1d4da;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
background: -webkit-linear-gradient(#c1d4da 0%, #e2e8ef 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -223,7 +223,7 @@
|
||||||
class="d-flex align-items-center align-items-center border-bottom mb-3"
|
class="d-flex align-items-center align-items-center border-bottom mb-3"
|
||||||
v-if="isGroupFilterActive"
|
v-if="isGroupFilterActive"
|
||||||
>
|
>
|
||||||
<multiselect
|
<USelectMenu
|
||||||
v-model="selectedGroupFilter"
|
v-model="selectedGroupFilter"
|
||||||
class="mb-3"
|
class="mb-3"
|
||||||
id="group-filter"
|
id="group-filter"
|
||||||
|
@ -231,7 +231,7 @@
|
||||||
placeholder="فیلتر گروه ها"
|
placeholder="فیلتر گروه ها"
|
||||||
label="title"
|
label="title"
|
||||||
:multiple="true"
|
:multiple="true"
|
||||||
:options="groupfilters"
|
:items="groupfilters"
|
||||||
:allow-empty="true"
|
:allow-empty="true"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
:options-limit="300"
|
:options-limit="300"
|
||||||
|
@ -247,14 +247,14 @@
|
||||||
:clear-on-select="false"
|
:clear-on-select="false"
|
||||||
:preserve-search="true"
|
:preserve-search="true"
|
||||||
>
|
>
|
||||||
<div slot="selection" slot-scope="{ values, search, isOpen }"
|
<div slot="selection" slot-scope="{ values, search, isOpen }">
|
||||||
><span
|
<span
|
||||||
class="multiselect__single"
|
class="multiselect__single"
|
||||||
v-if="values.length"
|
v-if="values.length"
|
||||||
v-show="!isOpen"
|
v-show="!isOpen"
|
||||||
>{{ values.length }} فیلتر</span
|
>{{ values.length }} فیلتر</span
|
||||||
></div
|
|
||||||
>
|
>
|
||||||
|
</div>
|
||||||
<div slot="noResult" slot-scope="{ values, search, isOpen }">
|
<div slot="noResult" slot-scope="{ values, search, isOpen }">
|
||||||
چیزی یافت نشد.
|
چیزی یافت نشد.
|
||||||
</div>
|
</div>
|
||||||
|
@ -281,7 +281,7 @@
|
||||||
<span class="option__title">{{ props.option.lable }}</span>
|
<span class="option__title">{{ props.option.lable }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
</multiselect>
|
</USelectMenu>
|
||||||
|
|
||||||
<!-- <button
|
<!-- <button
|
||||||
@click="showGroupFilter()"
|
@click="showGroupFilter()"
|
||||||
|
@ -314,7 +314,7 @@
|
||||||
>
|
>
|
||||||
<div class="group-row enable-hover">
|
<div class="group-row enable-hover">
|
||||||
<div class="group-picture-container">
|
<div class="group-picture-container">
|
||||||
<context-menu
|
<!-- <context-menu
|
||||||
height="auto"
|
height="auto"
|
||||||
maxHeight="13em"
|
maxHeight="13em"
|
||||||
dataOffset="0,0"
|
dataOffset="0,0"
|
||||||
|
@ -326,8 +326,7 @@
|
||||||
@remove-item="removeItem(groupItem)"
|
@remove-item="removeItem(groupItem)"
|
||||||
@other="makeLink(groupItem)"
|
@other="makeLink(groupItem)"
|
||||||
>
|
>
|
||||||
<!-- @generate-invite-post="openCreateForm('privates', groupItem)" -->
|
</context-menu> -->
|
||||||
</context-menu>
|
|
||||||
|
|
||||||
<img
|
<img
|
||||||
class="group-picture"
|
class="group-picture"
|
||||||
|
@ -393,7 +392,7 @@
|
||||||
>
|
>
|
||||||
<div class="group-row enable-hover">
|
<div class="group-row enable-hover">
|
||||||
<div class="group-picture-container">
|
<div class="group-picture-container">
|
||||||
<context-menu
|
<!-- <context-menu
|
||||||
height="auto"
|
height="auto"
|
||||||
maxHeight="13em"
|
maxHeight="13em"
|
||||||
dataOffset="0,0"
|
dataOffset="0,0"
|
||||||
|
@ -407,7 +406,7 @@
|
||||||
@join-to-group="openGroupSearchForm('groups', groupItem)"
|
@join-to-group="openGroupSearchForm('groups', groupItem)"
|
||||||
@other="openInvitePostModal(groupItem)"
|
@other="openInvitePostModal(groupItem)"
|
||||||
>
|
>
|
||||||
</context-menu>
|
</context-menu> -->
|
||||||
|
|
||||||
<img
|
<img
|
||||||
class="group-picture"
|
class="group-picture"
|
||||||
|
@ -468,13 +467,14 @@
|
||||||
|
|
||||||
<div v-else-if="$route.name == 'unReads'">
|
<div v-else-if="$route.name == 'unReads'">
|
||||||
<div
|
<div
|
||||||
|
v-if="groups.length"
|
||||||
class="group-item unReads"
|
class="group-item unReads"
|
||||||
v-for="(groupItem, index) in groups"
|
v-for="(groupItem, index) in groups"
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<div class="group-row">
|
<div class="group-row">
|
||||||
<div class="group-picture-container">
|
<div class="group-picture-container">
|
||||||
<context-menu
|
<!-- <context-menu
|
||||||
height="auto"
|
height="auto"
|
||||||
maxHeight="13em"
|
maxHeight="13em"
|
||||||
dataOffset="0,0"
|
dataOffset="0,0"
|
||||||
|
@ -487,7 +487,7 @@
|
||||||
@edit-item="editItem(groups, groupItem, index)"
|
@edit-item="editItem(groups, groupItem, index)"
|
||||||
@other="makeLink(groupItem)"
|
@other="makeLink(groupItem)"
|
||||||
>
|
>
|
||||||
</context-menu>
|
</context-menu> -->
|
||||||
|
|
||||||
<img
|
<img
|
||||||
class="group-picture"
|
class="group-picture"
|
||||||
|
@ -533,7 +533,7 @@
|
||||||
<svg class="icon icon-Component-112--1">
|
<svg class="icon icon-Component-112--1">
|
||||||
<use xlink:href="#icon-Component-112--1"></use>
|
<use xlink:href="#icon-Component-112--1"></use>
|
||||||
</svg>
|
</svg>
|
||||||
{{ groupItem.seen_messages.count }}
|
{{ groupItem.seen_messages?.count }}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<!-- replay info -->
|
<!-- replay info -->
|
||||||
|
@ -602,7 +602,7 @@
|
||||||
:aria-controls="'collapse' + key"
|
:aria-controls="'collapse' + key"
|
||||||
>
|
>
|
||||||
<div class="group-picture-container">
|
<div class="group-picture-container">
|
||||||
<context-menu
|
<!-- <context-menu
|
||||||
height="auto"
|
height="auto"
|
||||||
maxHeight="13em"
|
maxHeight="13em"
|
||||||
v-if="isGroupAdmin(lobby)"
|
v-if="isGroupAdmin(lobby)"
|
||||||
|
@ -616,7 +616,7 @@
|
||||||
@edit-item="editItem(groups, lobby, key)"
|
@edit-item="editItem(groups, lobby, key)"
|
||||||
@other="makeLink(lobby)"
|
@other="makeLink(lobby)"
|
||||||
>
|
>
|
||||||
</context-menu>
|
</context-menu> -->
|
||||||
|
|
||||||
<img
|
<img
|
||||||
class="group-picture"
|
class="group-picture"
|
||||||
|
@ -730,7 +730,7 @@
|
||||||
:class="{ 'enable-hover': isGroupAdmin(group) }"
|
:class="{ 'enable-hover': isGroupAdmin(group) }"
|
||||||
>
|
>
|
||||||
<div class="group-picture-container">
|
<div class="group-picture-container">
|
||||||
<context-menu
|
<!-- <context-menu
|
||||||
height="auto"
|
height="auto"
|
||||||
maxHeight="13em"
|
maxHeight="13em"
|
||||||
v-if="isGroupAdmin(group)"
|
v-if="isGroupAdmin(group)"
|
||||||
|
@ -743,7 +743,7 @@
|
||||||
@edit-item="editItem(groups, group, j)"
|
@edit-item="editItem(groups, group, j)"
|
||||||
@remove-item="removeItem(group)"
|
@remove-item="removeItem(group)"
|
||||||
>
|
>
|
||||||
</context-menu>
|
</context-menu> -->
|
||||||
|
|
||||||
<img
|
<img
|
||||||
class="group-picture"
|
class="group-picture"
|
||||||
|
@ -872,12 +872,12 @@
|
||||||
<div v-if="showUserSearchForm">
|
<div v-if="showUserSearchForm">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="users">انتخاب کاربر: </label>
|
<label for="users">انتخاب کاربر: </label>
|
||||||
<multiselect
|
<USelectMenu
|
||||||
id="users"
|
id="users"
|
||||||
track-by="user_id"
|
track-by="user_id"
|
||||||
placeholder="جستجوی..."
|
placeholder="جستجوی..."
|
||||||
:show-labels="false"
|
:show-labels="false"
|
||||||
:options="foundUsers"
|
:items="foundUsers"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
:internal-search="false"
|
:internal-search="false"
|
||||||
:clear-on-select="false"
|
:clear-on-select="false"
|
||||||
|
@ -915,7 +915,7 @@
|
||||||
>Oops! No elements found. Consider changing the search
|
>Oops! No elements found. Consider changing the search
|
||||||
query.</span
|
query.</span
|
||||||
> -->
|
> -->
|
||||||
</multiselect>
|
</USelectMenu>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -923,12 +923,12 @@
|
||||||
<div v-if="showGroupSearchForm">
|
<div v-if="showGroupSearchForm">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="add-member-group">جستجوی گروه: </label>
|
<label for="add-member-group">جستجوی گروه: </label>
|
||||||
<multiselect
|
<USelectMenu
|
||||||
id="add-member-group"
|
id="add-member-group"
|
||||||
track-by="id"
|
track-by="id"
|
||||||
label="title"
|
label="title"
|
||||||
placeholder="جستجوی..."
|
placeholder="جستجوی..."
|
||||||
:options="foundGroups"
|
:items="foundGroups"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
:internal-search="false"
|
:internal-search="false"
|
||||||
:clear-on-select="false"
|
:clear-on-select="false"
|
||||||
|
@ -941,7 +941,7 @@
|
||||||
@select="addGroupToSelectedGroup"
|
@select="addGroupToSelectedGroup"
|
||||||
@close="resetFoundGroups"
|
@close="resetFoundGroups"
|
||||||
>
|
>
|
||||||
</multiselect>
|
</USelectMenu>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -953,7 +953,7 @@
|
||||||
<div v-if="formType == 'lobbies'" class="form-group">
|
<div v-if="formType == 'lobbies'" class="form-group">
|
||||||
<label for="exampleFormControlTextarea1">انتخاب گروه: </label>
|
<label for="exampleFormControlTextarea1">انتخاب گروه: </label>
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<multiselect
|
<USelectMenu
|
||||||
:allow-empty="true"
|
:allow-empty="true"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
:close-on-select="true"
|
:close-on-select="true"
|
||||||
|
@ -962,7 +962,7 @@
|
||||||
track-by="id"
|
track-by="id"
|
||||||
placeholder="انتخاب تالار"
|
placeholder="انتخاب تالار"
|
||||||
v-model="form.parent"
|
v-model="form.parent"
|
||||||
:options="groups"
|
:items="groups"
|
||||||
:hide-selected="false"
|
:hide-selected="false"
|
||||||
:limit-text="
|
:limit-text="
|
||||||
(count) => {
|
(count) => {
|
||||||
|
@ -971,7 +971,7 @@
|
||||||
"
|
"
|
||||||
:max-height="350"
|
:max-height="350"
|
||||||
>
|
>
|
||||||
</multiselect>
|
</USelectMenu>
|
||||||
<div class="dropdown create-group-inner-form">
|
<div class="dropdown create-group-inner-form">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
@ -1032,7 +1032,7 @@
|
||||||
class="d-flex align-items-center align-items-center border-bottom mb-3"
|
class="d-flex align-items-center align-items-center border-bottom mb-3"
|
||||||
v-if="isGroupFilterActive"
|
v-if="isGroupFilterActive"
|
||||||
>
|
>
|
||||||
<multiselect
|
<USelectMenu
|
||||||
v-model="selectedGroupFilter"
|
v-model="selectedGroupFilter"
|
||||||
class="mb-3"
|
class="mb-3"
|
||||||
id="group-filter"
|
id="group-filter"
|
||||||
|
@ -1040,7 +1040,7 @@
|
||||||
placeholder="فیلتر گروه ها"
|
placeholder="فیلتر گروه ها"
|
||||||
label="title"
|
label="title"
|
||||||
:multiple="true"
|
:multiple="true"
|
||||||
:options="groupfilters"
|
:items="groupfilters"
|
||||||
:allow-empty="true"
|
:allow-empty="true"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
:options-limit="300"
|
:options-limit="300"
|
||||||
|
@ -1056,14 +1056,14 @@
|
||||||
:clear-on-select="false"
|
:clear-on-select="false"
|
||||||
:preserve-search="true"
|
:preserve-search="true"
|
||||||
>
|
>
|
||||||
<div slot="selection" slot-scope="{ values, search, isOpen }"
|
<div slot="selection" slot-scope="{ values, search, isOpen }">
|
||||||
><span
|
<span
|
||||||
class="multiselect__single"
|
class="multiselect__single"
|
||||||
v-if="values.length"
|
v-if="values.length"
|
||||||
v-show="!isOpen"
|
v-show="!isOpen"
|
||||||
>{{ values.length }} فیلتر</span
|
>{{ values.length }} فیلتر</span
|
||||||
></div
|
|
||||||
>
|
>
|
||||||
|
</div>
|
||||||
<div slot="noResult" slot-scope="{ values, search, isOpen }">
|
<div slot="noResult" slot-scope="{ values, search, isOpen }">
|
||||||
چیزی یافت نشد.
|
چیزی یافت نشد.
|
||||||
</div>
|
</div>
|
||||||
|
@ -1090,7 +1090,7 @@
|
||||||
<span class="option__title">{{ props.option.lable }}</span>
|
<span class="option__title">{{ props.option.lable }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
</multiselect>
|
</USelectMenu>
|
||||||
|
|
||||||
<!-- <button
|
<!-- <button
|
||||||
@click="showGroupFilter()"
|
@click="showGroupFilter()"
|
||||||
|
@ -1160,12 +1160,12 @@
|
||||||
<div v-if="showAddUserForm">
|
<div v-if="showAddUserForm">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="users">جستجوی کاربر: </label>
|
<label for="users">جستجوی کاربر: </label>
|
||||||
<multiselect
|
<USelectMenu
|
||||||
id="users"
|
id="users"
|
||||||
track-by="user_id"
|
track-by="user_id"
|
||||||
placeholder="جستجوی..."
|
placeholder="جستجوی..."
|
||||||
:show-labels="false"
|
:show-labels="false"
|
||||||
:options="foundUsers"
|
:items="foundUsers"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
:internal-search="false"
|
:internal-search="false"
|
||||||
:clear-on-select="false"
|
:clear-on-select="false"
|
||||||
|
@ -1183,7 +1183,7 @@
|
||||||
@select="addUserToGroup"
|
@select="addUserToGroup"
|
||||||
@close="resetFoundUsers"
|
@close="resetFoundUsers"
|
||||||
>
|
>
|
||||||
</multiselect>
|
</USelectMenu>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1204,7 +1204,8 @@
|
||||||
class="image-uploader-container"
|
class="image-uploader-container"
|
||||||
:class="{ 'hide-preview': hasImage }"
|
:class="{ 'hide-preview': hasImage }"
|
||||||
>
|
>
|
||||||
<image-uploader
|
<client-only>
|
||||||
|
<ImageCropper
|
||||||
ref="file-uploader"
|
ref="file-uploader"
|
||||||
:preview="true"
|
:preview="true"
|
||||||
:debug="1"
|
:debug="1"
|
||||||
|
@ -1242,7 +1243,8 @@
|
||||||
|
|
||||||
<span v-else class="tavasi tavasi-cloud-upload"></span>
|
<span v-else class="tavasi tavasi-cloud-upload"></span>
|
||||||
</label>
|
</label>
|
||||||
</image-uploader>
|
</ImageCropper>
|
||||||
|
</client-only>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1258,7 +1260,7 @@
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<base-modal
|
<!-- <base-modal-v2
|
||||||
v-if="showInvitePostModal"
|
v-if="showInvitePostModal"
|
||||||
modalSize="modal-lg"
|
modalSize="modal-lg"
|
||||||
modalTitle="فرم ایجاد پست دعوت نامه"
|
modalTitle="فرم ایجاد پست دعوت نامه"
|
||||||
|
@ -1269,31 +1271,33 @@
|
||||||
@close="closeAndResetInvitePostModal"
|
@close="closeAndResetInvitePostModal"
|
||||||
:group="groupToInvite"
|
:group="groupToInvite"
|
||||||
></invite-post>
|
></invite-post>
|
||||||
</base-modal>
|
</base-modal-v2> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// import { dragDropMoveMixin } from "~/list/mixins/dragDropMoveMixin";
|
import chatApi from "@chat/apis/chatApi";
|
||||||
// import { searchMixin } from "~/list/mixins/searchMixin";
|
|
||||||
import ImageUploader from "vue-image-upload-resize";
|
|
||||||
import chatApi from "~/apis/chatApi";
|
|
||||||
import keyValueApi from "~/apis/keyValueApi";
|
|
||||||
import { mapState, mapActions } from "pinia";
|
import { mapState, mapActions } from "pinia";
|
||||||
|
|
||||||
|
import privatesContextMenu from "@chat/json/chat/json/privatesContextMenu.json";
|
||||||
|
import groupsContextMenu from "@chat/json/chat/json/groupsContextMenu.json";
|
||||||
|
|
||||||
import privatesContextMenu from "~/json/chat/json/privatesContextMenu.json";
|
import lobbiesChildContextMenu from "@chat/json/chat/json/lobbiesChildContextMenu.json";
|
||||||
import groupsContextMenu from "~/json/chat/json/groupsContextMenu.json";
|
import lobbiesParentContextMenu from "@chat/json/chat/json/lobbiesParentContextMenu.json";
|
||||||
// import lobbiesContextMenu from "~/json/chat/json/lobbiesContextMenu.json";
|
|
||||||
|
|
||||||
import lobbiesChildContextMenu from "~/json/chat/json/lobbiesChildContextMenu.json";
|
import menu from "@chat/json/chat/json/menu.json";
|
||||||
import lobbiesParentContextMenu from "~/json/chat/json/lobbiesParentContextMenu.json";
|
import { useCommonStore } from "@stores/commonStore";
|
||||||
|
import { useChatStore } from "@chat/stores/chatStore";
|
||||||
import menu from "~/json/chat/json/menu.json";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: "group",
|
||||||
|
setup() {
|
||||||
|
definePageMeta({
|
||||||
|
name: "group",
|
||||||
|
});
|
||||||
|
},
|
||||||
// mixins: [dragDropMoveMixin],
|
// mixins: [dragDropMoveMixin],
|
||||||
emits: ["list-changed", "list-item-changed"],
|
emits: ["list-changed", "list-item-changed", "update-messages"],
|
||||||
props: {
|
props: {
|
||||||
statusPagHedear: {
|
statusPagHedear: {
|
||||||
default: 1,
|
default: 1,
|
||||||
|
@ -1317,9 +1321,9 @@ export default {
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
const { $eventBus } = useNuxtApp();
|
const { $eventBus } = useNuxtApp();
|
||||||
// fired from chat.vue footer menu
|
// fired from chat.vue footer menu
|
||||||
// $eventBus.on("open-list", (value) => {
|
$eventBus.on("open-list", (value) => {
|
||||||
// this.showSidebarInMobile = value;
|
this.showSidebarInMobile = value;
|
||||||
// });
|
});
|
||||||
|
|
||||||
// listening to the chat-list component.
|
// listening to the chat-list component.
|
||||||
$eventBus.on("add-to-lobby", () => {
|
$eventBus.on("add-to-lobby", () => {
|
||||||
|
@ -1367,10 +1371,7 @@ export default {
|
||||||
// "app-version-code": import.meta.env.VITE_APP_VERSION,
|
// "app-version-code": import.meta.env.VITE_APP_VERSION,
|
||||||
// };
|
// };
|
||||||
|
|
||||||
this.httpService = new HttpService(
|
this.httpService = useNuxtApp()["$http"];
|
||||||
import.meta.env.VITE_BASE_URL
|
|
||||||
// headers
|
|
||||||
);
|
|
||||||
|
|
||||||
// this.authHttpService = new HttpService(import.meta.env.VITE_AUTH_BASE_URL);
|
// this.authHttpService = new HttpService(import.meta.env.VITE_AUTH_BASE_URL);
|
||||||
// this.keyValueHttpService = new HttpService(
|
// this.keyValueHttpService = new HttpService(
|
||||||
|
@ -1416,13 +1417,14 @@ export default {
|
||||||
|
|
||||||
// when user forward a message.
|
// when user forward a message.
|
||||||
if (this.getForwardItem) {
|
if (this.getForwardItem) {
|
||||||
this.groupId = this.getForwardItem?.to.id;
|
this.groupId = this.getForwardItem?.to?.id;
|
||||||
// this.isRedirectedFromOtherSystems = true;
|
// this.isRedirectedFromOtherSystems = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getAll(this.$route.name);
|
this.getAll(this.$route.name);
|
||||||
|
|
||||||
// event fired from authMixin.js
|
// event fired from authMixin.js
|
||||||
|
const { $eventBus } = useNuxtApp();
|
||||||
$eventBus.on("authenticated-by-modal", (inviteId) => {
|
$eventBus.on("authenticated-by-modal", (inviteId) => {
|
||||||
// const headers = {
|
// const headers = {
|
||||||
// "app-id": import.meta.env.VITE_APP_ID,
|
// "app-id": import.meta.env.VITE_APP_ID,
|
||||||
|
@ -1430,11 +1432,6 @@ export default {
|
||||||
// "app-version-code": import.meta.env.VITE_APP_VERSION,
|
// "app-version-code": import.meta.env.VITE_APP_VERSION,
|
||||||
// };
|
// };
|
||||||
|
|
||||||
this.httpService = new HttpService(
|
|
||||||
import.meta.env.VITE_BASE_URL
|
|
||||||
// headers
|
|
||||||
);
|
|
||||||
|
|
||||||
// this.authHttpService = new HttpService(import.meta.env.VITE_AUTH_BASE_URL);
|
// this.authHttpService = new HttpService(import.meta.env.VITE_AUTH_BASE_URL);
|
||||||
|
|
||||||
this.isRedirectedFromOtherSystems = true;
|
this.isRedirectedFromOtherSystems = true;
|
||||||
|
@ -1585,29 +1582,21 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
...mapState([
|
...mapState(useCommonStore, [
|
||||||
"isSidebarCollapsed",
|
|
||||||
"getForwardItem",
|
|
||||||
"userPermisionGetter",
|
"userPermisionGetter",
|
||||||
"getPanelStatus",
|
|
||||||
"sidebarListStatusGetter",
|
"sidebarListStatusGetter",
|
||||||
]),
|
]),
|
||||||
...mapState("list", ["listGetter"]),
|
...mapState(useChatStore, ["listGetter", "getForwardItem"]),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions([
|
...mapActions(useChatStore, ["SET_LIST", "SET_SIDEBAR_LIST_STATUS"]),
|
||||||
"TOGGLE_PANEL",
|
handleImageSrcOnError({ target }, isUserAvatar = true) {
|
||||||
"checkPermissions",
|
if (isUserAvatar) target.classList.add("human-avatar");
|
||||||
"sidebarCollapsedSetter",
|
target.classList.add("error");
|
||||||
"SET_SIDEBAR_LIST_STATUS",
|
},
|
||||||
]),
|
|
||||||
...mapActions("list", ["SET_LIST"]),
|
|
||||||
// groupAvatarMaker(avatarUrl) {
|
|
||||||
// return import.meta.env.VITE_BASE_URL + fileUrl() + avatarUrl;
|
|
||||||
// },
|
|
||||||
getGroupTypes() {
|
getGroupTypes() {
|
||||||
this.httpService
|
this.httpService
|
||||||
.postRequest("keyvalue/" + keyValueApi.forms.groupTypes)
|
.postRequest("keyvalue/" + chatApi.forms.groupTypes)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
this.groupfilters = response.data;
|
this.groupfilters = response.data;
|
||||||
});
|
});
|
||||||
|
@ -1646,13 +1635,13 @@ export default {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await navigator.clipboard.writeText(link);
|
await navigator.clipboard.writeText(link);
|
||||||
mySwalToast({
|
// mySwalToast({
|
||||||
html: "لینک کپی شد.",
|
// html: "لینک کپی شد.",
|
||||||
});
|
// });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
mySwalToast({
|
// mySwalToast({
|
||||||
html: "خطایی رخ داد.لطفا دوباره امتحان کنید.",
|
// html: "خطایی رخ داد.لطفا دوباره امتحان کنید.",
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
resetFoundUsers() {
|
resetFoundUsers() {
|
||||||
|
@ -1709,7 +1698,7 @@ export default {
|
||||||
this.redirectViaInviteLink = true;
|
this.redirectViaInviteLink = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const tempGroupFilter = structuredClone(this.selectedGroupFilter);
|
const tempGroupFilter = this.selectedGroupFilter;
|
||||||
const payload = {
|
const payload = {
|
||||||
type: tempGroupFilter.map((item) => item.id),
|
type: tempGroupFilter.map((item) => item.id),
|
||||||
};
|
};
|
||||||
|
@ -1818,7 +1807,7 @@ export default {
|
||||||
// if (formType == "groups") urlPrefix =
|
// if (formType == "groups") urlPrefix =
|
||||||
// else if (formType == "lobbies") urlPrefix = chatApi.lobbies.create
|
// else if (formType == "lobbies") urlPrefix = chatApi.lobbies.create
|
||||||
// else if (formType == "privates") urlPrefix = chatApi.privates.create
|
// else if (formType == "privates") urlPrefix = chatApi.privates.create
|
||||||
// const payload = structuredClone(this.form);
|
// const payload = this.form
|
||||||
|
|
||||||
this.form.members = JSON.stringify(this.form.members);
|
this.form.members = JSON.stringify(this.form.members);
|
||||||
this.form.admins = undefined;
|
this.form.admins = undefined;
|
||||||
|
@ -1853,8 +1842,7 @@ export default {
|
||||||
logout(this.$route);
|
logout(this.$route);
|
||||||
this.fetchingData = false;
|
this.fetchingData = false;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
// remove group/remove lobby group
|
// remove group/remove lobby group
|
||||||
removeItem(groupItem) {
|
removeItem(groupItem) {
|
||||||
|
@ -1886,7 +1874,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
editItem(groups, groupItem, index) {
|
editItem(groups, groupItem, index) {
|
||||||
this.form = structuredClone(groupItem);
|
this.form = groupItem;
|
||||||
this.markActive(groups, index);
|
this.markActive(groups, index);
|
||||||
this.openGroupCreateForm(this.convertGroupIntegerToString[this.formType]);
|
this.openGroupCreateForm(this.convertGroupIntegerToString[this.formType]);
|
||||||
},
|
},
|
||||||
|
@ -1951,7 +1939,7 @@ export default {
|
||||||
|
|
||||||
// const methodType = listType == "unReads" ? 'postRequest' : 'getRequest'
|
// const methodType = listType == "unReads" ? 'postRequest' : 'getRequest'
|
||||||
|
|
||||||
const tempGroupFilter = structuredClone(this.selectedGroupFilter);
|
const tempGroupFilter = this.selectedGroupFilter;
|
||||||
const payload = {
|
const payload = {
|
||||||
type: tempGroupFilter.map((item) => item.id),
|
type: tempGroupFilter.map((item) => item.id),
|
||||||
};
|
};
|
||||||
|
@ -2048,7 +2036,6 @@ export default {
|
||||||
this.prevSelectedItemIndex = index;
|
this.prevSelectedItemIndex = index;
|
||||||
this.$set(groups[index], "active", true);
|
this.$set(groups[index], "active", true);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
||||||
this.prevSelectedItemIndex = undefined;
|
this.prevSelectedItemIndex = undefined;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -2058,7 +2045,9 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
showMessages(groups, groupItem, index) {
|
showMessages(groups, groupItem, index) {
|
||||||
|
const { $eventBus } = useNuxtApp();
|
||||||
$eventBus.emit("close-replays");
|
$eventBus.emit("close-replays");
|
||||||
|
|
||||||
// for mobile mode, closes the panel.
|
// for mobile mode, closes the panel.
|
||||||
if (this.resizeAction()) {
|
if (this.resizeAction()) {
|
||||||
this.SET_SIDEBAR_LIST_STATUS();
|
this.SET_SIDEBAR_LIST_STATUS();
|
||||||
|
@ -2205,11 +2194,11 @@ export default {
|
||||||
let url = "message/" + chatApi[this.$route.name].parent;
|
let url = "message/" + chatApi[this.$route.name].parent;
|
||||||
|
|
||||||
if (comboSelectedGroup.parent_id) {
|
if (comboSelectedGroup.parent_id) {
|
||||||
mySwalToast({
|
// mySwalToast({
|
||||||
title: "",
|
// title: "",
|
||||||
icon: "warning",
|
// icon: "warning",
|
||||||
html: "این گروه قبلا عضو تالاری شده است و امکان عضویت در تالار دوم را ندارد.",
|
// html: "این گروه قبلا عضو تالاری شده است و امکان عضویت در تالار دوم را ندارد.",
|
||||||
});
|
// });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2221,10 +2210,10 @@ export default {
|
||||||
this.httpService
|
this.httpService
|
||||||
.formDataRequest(url, payload)
|
.formDataRequest(url, payload)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
mySwalToast({
|
// mySwalToast({
|
||||||
title: "",
|
// title: "",
|
||||||
html: res.message,
|
// html: res.message,
|
||||||
});
|
// });
|
||||||
this.closeCreateForm();
|
this.closeCreateForm();
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -2250,9 +2239,7 @@ export default {
|
||||||
parent_id: 0,
|
parent_id: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
this.httpService
|
this.httpService.formDataRequest(url, payload).then((res) => {
|
||||||
.formDataRequest(url, payload)
|
|
||||||
.then((res) => {
|
|
||||||
this.fetchingData = false;
|
this.fetchingData = false;
|
||||||
|
|
||||||
// mySwalToast({
|
// mySwalToast({
|
||||||
|
@ -2260,8 +2247,7 @@ export default {
|
||||||
// });
|
// });
|
||||||
this.resetPagination();
|
this.resetPagination();
|
||||||
this.getAll("lobbies");
|
this.getAll("lobbies");
|
||||||
})
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -2303,9 +2289,7 @@ export default {
|
||||||
|
|
||||||
this.findUser(payload);
|
this.findUser(payload);
|
||||||
} else {
|
} else {
|
||||||
this.httpService
|
this.httpService.postRequest(url, payload).then((response) => {
|
||||||
.postRequest(url, payload)
|
|
||||||
.then((response) => {
|
|
||||||
this.groups = response.data;
|
this.groups = response.data;
|
||||||
this.users = response.users;
|
this.users = response.users;
|
||||||
this.pagination = { ...this.pagination, ...response.pagination };
|
this.pagination = { ...this.pagination, ...response.pagination };
|
||||||
|
@ -2313,15 +2297,12 @@ export default {
|
||||||
if (this.searchText == "") {
|
if (this.searchText == "") {
|
||||||
this.groups = [];
|
this.groups = [];
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
findUser(query) {
|
findUser(query) {
|
||||||
const url = loginUrl() + "/user/suggestion";
|
const url = loginUrl() + "/user/suggestion";
|
||||||
this.httpService
|
this.httpService.postRequest(url, query).then((response) => {
|
||||||
.postRequest(url, query)
|
|
||||||
.then((response) => {
|
|
||||||
response.data.forEach((i) => {
|
response.data.forEach((i) => {
|
||||||
i["user"] = i.user_id;
|
i["user"] = i.user_id;
|
||||||
i["title"] = i.full_name;
|
i["title"] = i.full_name;
|
||||||
|
@ -2336,11 +2317,9 @@ export default {
|
||||||
if (this.searchText == "") {
|
if (this.searchText == "") {
|
||||||
this.groups = [];
|
this.groups = [];
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
replayCount(replays) {
|
replayCount(replays = []) {
|
||||||
let sum = 0;
|
let sum = 0;
|
||||||
replays.forEach((item) => {
|
replays.forEach((item) => {
|
||||||
sum += item.count;
|
sum += item.count;
|
||||||
|
@ -2360,9 +2339,7 @@ export default {
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
// this.isLoading = false;
|
// this.isLoading = false;
|
||||||
this.foundUsers = response.data ?? [];
|
this.foundUsers = response.data ?? [];
|
||||||
})
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -2436,10 +2413,10 @@ export default {
|
||||||
this.httpService
|
this.httpService
|
||||||
.postRequest(url, payload)
|
.postRequest(url, payload)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
mySwalToast({
|
// mySwalToast({
|
||||||
title: "",
|
// title: "",
|
||||||
html: res.message,
|
// html: res.message,
|
||||||
});
|
// });
|
||||||
// this.closeCreateForm();
|
// this.closeCreateForm();
|
||||||
// this.getAll();
|
// this.getAll();
|
||||||
})
|
})
|
||||||
|
@ -2466,10 +2443,7 @@ export default {
|
||||||
|
|
||||||
this.getAll(this.$route.name);
|
this.getAll(this.$route.name);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {});
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// #region mehdi
|
// #region mehdi
|
||||||
|
@ -2520,6 +2494,10 @@ export default {
|
||||||
},
|
},
|
||||||
// #endregion
|
// #endregion
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
ImageCropper: defineAsyncComponent(() =>
|
||||||
|
import("@components/other/ImageCropper.vue")
|
||||||
|
),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -109,6 +109,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapState, mapActions } from "pinia";
|
import { mapState, mapActions } from "pinia";
|
||||||
|
import { useChatStore } from "~/systems/chat_ui/stores/chatStore";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
|
@ -119,12 +120,11 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState([
|
...mapState(useCommonStore, [
|
||||||
"getPanelStatus",
|
|
||||||
"isSidebarCollapsed",
|
"isSidebarCollapsed",
|
||||||
"sidebarListStatusGetter",
|
"sidebarListStatusGetter",
|
||||||
]),
|
]),
|
||||||
...mapState("list", [
|
...mapState(useChatStore, [
|
||||||
"listComponentNameGetter",
|
"listComponentNameGetter",
|
||||||
"selectedProjectGetter",
|
"selectedProjectGetter",
|
||||||
"listIdGetter",
|
"listIdGetter",
|
||||||
|
@ -133,21 +133,17 @@ export default {
|
||||||
]),
|
]),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions([
|
...mapActions(useChatStore, [
|
||||||
"TOGGLE_PANEL",
|
|
||||||
"sidebarCollapsedSetter",
|
"sidebarCollapsedSetter",
|
||||||
"SET_SIDEBAR_LIST_STATUS",
|
"SET_SIDEBAR_LIST_STATUS",
|
||||||
]),
|
|
||||||
...mapActions("list", [
|
|
||||||
"SET_LIST_COMPONENT_NAME",
|
"SET_LIST_COMPONENT_NAME",
|
||||||
"SET_SELECTED_ITEM",
|
"SET_SELECTED_ITEM",
|
||||||
"SET_SELECTED_PROJECT",
|
"SET_SELECTED_PROJECT",
|
||||||
"SET_LIST_ID",
|
"SET_LIST_ID",
|
||||||
"SET_LIST",
|
"SET_LIST",
|
||||||
"SET_LIST_ID",
|
"SET_LIST_ID",
|
||||||
|
"chatSidebarListStatusReactor",
|
||||||
]),
|
]),
|
||||||
...mapActions(["chatSidebarListStatusReactor"]),
|
|
||||||
|
|
||||||
setSidebarMenu(actionName) {
|
setSidebarMenu(actionName) {
|
||||||
this.footerAction = actionName;
|
this.footerAction = actionName;
|
||||||
this.sidebarCollapsedSetter(!this.isSidebarCollapsed);
|
this.sidebarCollapsedSetter(!this.isSidebarCollapsed);
|
||||||
|
|
|
@ -1,241 +0,0 @@
|
||||||
<!-- layouts/default.vue -->
|
|
||||||
<template>
|
|
||||||
<div>
|
|
||||||
<header v-if="buildName() != 'majles'">
|
|
||||||
<!-- //////////////////// begin navbar //////////////////// -->
|
|
||||||
<nav
|
|
||||||
class="navbar navbar-expand-md navbar-light bg-light"
|
|
||||||
:class="{ expanded: !isSidebarCollapsed }"
|
|
||||||
>
|
|
||||||
<!-- sidebar menu toggler -->
|
|
||||||
<button-component
|
|
||||||
@click="sidebarCollapsedSetter(false)"
|
|
||||||
classes="p-0 d-lg-none"
|
|
||||||
buttonText=""
|
|
||||||
>
|
|
||||||
<svg class="icon icon-Component-68--1">
|
|
||||||
<use xlink:href="#icon-Component-68--1"></use>
|
|
||||||
</svg>
|
|
||||||
</button-component>
|
|
||||||
<a
|
|
||||||
class="navbar-brand d-none d-lg-inline-block"
|
|
||||||
style="color: #00b6e3"
|
|
||||||
>{{ navTitle }}</a
|
|
||||||
>
|
|
||||||
<a class="navbar-brand d-lg-none" style="color: #00b6e3">{{
|
|
||||||
navShortTitle
|
|
||||||
}}</a>
|
|
||||||
<button
|
|
||||||
class="navbar-toggler"
|
|
||||||
type="button"
|
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target="#navbarSupportedContent"
|
|
||||||
aria-controls="navbarSupportedContent"
|
|
||||||
aria-expanded="false"
|
|
||||||
aria-label="Toggle navigation"
|
|
||||||
>
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<div class="navbar-collapse" id="navbarSupportedContent">
|
|
||||||
<div class="collapse-mobile-header">
|
|
||||||
<div>
|
|
||||||
<img
|
|
||||||
src="assets/common/img/logo/gray-logo.png"
|
|
||||||
alt="هم فهمی"
|
|
||||||
class="img-fluid"
|
|
||||||
style="width: 2em; filter: invert(0)"
|
|
||||||
/>
|
|
||||||
هم فهمی
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button
|
|
||||||
class="btn p-0 me-auto"
|
|
||||||
type="button"
|
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target="#navbarSupportedContent"
|
|
||||||
aria-controls="navbarSupportedContent"
|
|
||||||
aria-expanded="false"
|
|
||||||
aria-label="Toggle navigation"
|
|
||||||
>
|
|
||||||
<svg class="icon icon-Component-71--1">
|
|
||||||
<use xlink:href="#icon-Component-71--1"></use>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<ul class="navbar-nav ms-auto me-md-5">
|
|
||||||
<!-- <li class="nav-item active">
|
|
||||||
<a class="nav-link" href="#"
|
|
||||||
>پیشخوان <span class="sr-only">(current)</span></a
|
|
||||||
>
|
|
||||||
</li> -->
|
|
||||||
<!-- <li class="nav-item">
|
|
||||||
<a class="nav-link" href="#">سامانهها</a>
|
|
||||||
</li> -->
|
|
||||||
<li class="nav-item dropdown">
|
|
||||||
<a
|
|
||||||
class="nav-link dropdown-toggle"
|
|
||||||
id="navbarDropdown"
|
|
||||||
role="button"
|
|
||||||
data-bs-toggle="dropdown"
|
|
||||||
aria-haspopup="true"
|
|
||||||
aria-expanded="false"
|
|
||||||
>
|
|
||||||
{{ $t("Systems") }}
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
|
||||||
<!-- <my-system class="list" layout="list"></my-system> -->
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item dropdown">
|
|
||||||
<a
|
|
||||||
class="nav-link dropdown-toggle"
|
|
||||||
href="#"
|
|
||||||
id="navbarDropdown"
|
|
||||||
role="button"
|
|
||||||
data-bs-toggle="dropdown"
|
|
||||||
aria-haspopup="true"
|
|
||||||
aria-expanded="false"
|
|
||||||
>
|
|
||||||
{{ $t("Portal") }}
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
|
||||||
<a
|
|
||||||
class="dropdown-item"
|
|
||||||
href="http://pub.hamfahmi.ir/public"
|
|
||||||
target="_blank"
|
|
||||||
>{{ $t("PersonalFolder") }}</a
|
|
||||||
>
|
|
||||||
<a
|
|
||||||
class="dropdown-item"
|
|
||||||
href="http://pub.hamfahmi.ir/wiki"
|
|
||||||
target="_blank"
|
|
||||||
>{{ $t("WikiFarhangestan") }}</a
|
|
||||||
>
|
|
||||||
<a
|
|
||||||
class="dropdown-item"
|
|
||||||
href="http://pub.hamfahmi.ir:91/"
|
|
||||||
target="_blank"
|
|
||||||
>{{ $t("ResearchPortal") }}</a
|
|
||||||
>
|
|
||||||
<a
|
|
||||||
class="dropdown-item"
|
|
||||||
href="http://pub.hamfahmi.ir:94/"
|
|
||||||
target="_blank"
|
|
||||||
>{{ $t("ResearchSoftware") }}</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="navbar-nav ms-md-3 me-auto">
|
|
||||||
<li class="nav-item">
|
|
||||||
<notification></notification>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<select-language-dropdown
|
|
||||||
toggleClass="dropdown-toggle"
|
|
||||||
></select-language-dropdown>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<user-avatar-dropdown
|
|
||||||
class="position-static"
|
|
||||||
></user-avatar-dropdown>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<!-- //////////////////// end navbar //////////////////// -->
|
|
||||||
</header>
|
|
||||||
<!-- <the-sidebar :showUserAvatar="true" :menu="menu"></the-sidebar> -->
|
|
||||||
<the-sidebar
|
|
||||||
:showUserAvatar="true"
|
|
||||||
:menu="$attrs.menu"
|
|
||||||
@statusPag="statusPag"
|
|
||||||
></the-sidebar>
|
|
||||||
|
|
||||||
<main class="main-page__content" :class="{ expanded: !isSidebarCollapsed }">
|
|
||||||
<!-- <div class="pages list-page"> -->
|
|
||||||
<!-- <div class="pages-content align-items-stretch p-0"> -->
|
|
||||||
<!-- <div class="flex-grow-1"> -->
|
|
||||||
|
|
||||||
<slot></slot>
|
|
||||||
<!-- </div> -->
|
|
||||||
<!-- </div> -->
|
|
||||||
<!-- </div> -->
|
|
||||||
</main>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { mapState, mapActions } from "pinia";
|
|
||||||
import { useCommonStore } from "~/stores/commonStore";
|
|
||||||
|
|
||||||
import { clearBodyClass } from "@manuals/utilities";
|
|
||||||
export default {
|
|
||||||
mounted() {
|
|
||||||
// this.setBodyClass("default-dashboard");
|
|
||||||
},
|
|
||||||
beforeUnmount() {
|
|
||||||
this.sidebarMenuSetter();
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
menu: undefined,
|
|
||||||
// #region mehdi
|
|
||||||
statusPag: 0,
|
|
||||||
nomber: 0,
|
|
||||||
statusPagHedear: 1,
|
|
||||||
// #endregion
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(useCommonStore, [
|
|
||||||
"getPanelStatus",
|
|
||||||
"getRefreshForm",
|
|
||||||
"isSidebarCollapsed",
|
|
||||||
"sidebarMenuGetter",
|
|
||||||
]),
|
|
||||||
navTitle() {
|
|
||||||
return import.meta.env.VITE_TITLE;
|
|
||||||
},
|
|
||||||
navShortTitle() {
|
|
||||||
return import.meta.env.VITE_SHORT_TITLE;
|
|
||||||
},
|
|
||||||
// sidbarMenu() {
|
|
||||||
// if (buildName() == "majles") return majlesMenu;
|
|
||||||
// return monirMenu;
|
|
||||||
// },
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
...mapActions(useCommonStore, [
|
|
||||||
"setBodyClass",
|
|
||||||
"TOGGLE_PANEL",
|
|
||||||
"sidebarCollapsedSetter",
|
|
||||||
"SET_SIDEBAR_LIST_STATUS",
|
|
||||||
"sidebarMenuSetter",
|
|
||||||
]),
|
|
||||||
|
|
||||||
showPortal() {
|
|
||||||
return buildName() == "monir" && buildState() != 2;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
@import "../assets/default-dashboard/scss/default-dashboard";
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.dropdown-menu {
|
|
||||||
float: right;
|
|
||||||
min-width: 13rem;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0.1em;
|
|
||||||
text-align: right;
|
|
||||||
min-width: 20em;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,5 +0,0 @@
|
||||||
Layouts are wrappers around pages that contain a common User Interface for several pages, such as
|
|
||||||
a header and footer display. Layouts are Vue files using <slot /> components to display the page
|
|
||||||
content. The layouts/default.vue file will be used by default. Custom layouts can be set as part of
|
|
||||||
your page metadata.
|
|
||||||
If you only have a single layout in your application, we recommend using app.vue with <NuxtPage /> instead.
|
|
158
pages/Chat.vue
Normal file
158
pages/Chat.vue
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<group
|
||||||
|
ref="chat-list-panel"
|
||||||
|
@update-messages="rerenderChatList++"
|
||||||
|
:show-header="statusPagHedear"
|
||||||
|
id="group"
|
||||||
|
></group>
|
||||||
|
|
||||||
|
<div class="flex-grow-1">
|
||||||
|
<div class="position-relative d-flex justify-content-center"></div>
|
||||||
|
<div v-if="listGetter">
|
||||||
|
<!-- <chat-list
|
||||||
|
ref="chat-content"
|
||||||
|
:key="rerenderChatList"
|
||||||
|
@show="statusPage"
|
||||||
|
@my-event="openPagGrup"
|
||||||
|
></chat-list> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-else class="no-group-selected" :class="$route.name">
|
||||||
|
<img
|
||||||
|
style="width: 10em"
|
||||||
|
class="img-fluid"
|
||||||
|
src="assets/common/img/logo/gray-logo.png"
|
||||||
|
alt="هم فهمی"
|
||||||
|
/>
|
||||||
|
<p class="title m-0">
|
||||||
|
{{ selectedListBackTitle($route.name) }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- </div> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <mobile-footer></mobile-footer> -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapState, mapActions } from "pinia";
|
||||||
|
import { useChatStore } from "@chat/stores/chatStore";
|
||||||
|
import { useCommonStore } from "@stores/commonStore";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "chat",
|
||||||
|
setup() {
|
||||||
|
definePageMeta({
|
||||||
|
name: "chat",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.TOGGLE_PANEL(false);
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
getPanelStatus(status) {
|
||||||
|
if (status) this.openForm();
|
||||||
|
else this.closeModal();
|
||||||
|
},
|
||||||
|
$route: {
|
||||||
|
handler: function () {
|
||||||
|
this.sidebarCollapsedSetter(true);
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
// listIdGetter(newId) {
|
||||||
|
// this.filterBy(this.selectedFilter);
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// #region mehdi
|
||||||
|
nomber: 0,
|
||||||
|
statusPagHedear: 1,
|
||||||
|
|
||||||
|
// #endregion
|
||||||
|
rerenderChatList: 1,
|
||||||
|
showListPanel: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(useCommonStore, [
|
||||||
|
"getPanelStatus",
|
||||||
|
"isSidebarCollapsed",
|
||||||
|
"sidebarListStatusGetter",
|
||||||
|
"listGetter",
|
||||||
|
]),
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapActions(useChatStore, [
|
||||||
|
"SET_LIST_COMPONENT_NAME",
|
||||||
|
"SET_SELECTED_ITEM",
|
||||||
|
"SET_SELECTED_PROJECT",
|
||||||
|
"SET_LIST_ID",
|
||||||
|
"SET_LIST",
|
||||||
|
]),
|
||||||
|
...mapActions(useCommonStore, [
|
||||||
|
"SET_SIDEBAR_LIST_STATUS",
|
||||||
|
"checkPermissions",
|
||||||
|
"sidebarCollapsedSetter",
|
||||||
|
"TOGGLE_PANEL",
|
||||||
|
]),
|
||||||
|
selectedListBackTitle(name) {
|
||||||
|
if (name == "groups") return "دانشتو با بقیه به اشتراک بزار.";
|
||||||
|
if (name == "privates") return "به هر کی دوست داری، پیام بده.";
|
||||||
|
if (name == "lobbies") return "به تالار گفتگو خوش اومدی";
|
||||||
|
},
|
||||||
|
// showSearch() {
|
||||||
|
// search in current group, not all groups.
|
||||||
|
// this.$refs["chat-list-panel"].showSearchs(true);
|
||||||
|
// },
|
||||||
|
|
||||||
|
// #region mehdi
|
||||||
|
statusPage($event) {
|
||||||
|
const number = $event;
|
||||||
|
|
||||||
|
if (number == 1) {
|
||||||
|
if (this.$refs["chat-list-panel"].showMainpag == false) {
|
||||||
|
this.$refs["chat-list-panel"].showMainpag = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this.$refs["chat-list-panel"].showMainpag == false) {
|
||||||
|
this.$refs["chat-list-panel"].showMainpag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// #endregion
|
||||||
|
|
||||||
|
toggleSidebarMenu() {
|
||||||
|
this.TOGGLE_SIDEBAR_MENU();
|
||||||
|
},
|
||||||
|
showToggleListPanel() {
|
||||||
|
this.showListPanel = !this.showListPanel;
|
||||||
|
this.$refs["chat-list-panel"].showMainpag = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
// #region mehdi
|
||||||
|
openPagGrup(data) {
|
||||||
|
this.enablePanelToggling = data;
|
||||||
|
if (this.enablePanelToggling == 1) {
|
||||||
|
this.showToggleListPanel();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// #endregion
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
Group: defineAsyncComponent(() =>
|
||||||
|
import("@chat/components/chat/components/Group.vue")
|
||||||
|
),
|
||||||
|
ChatList: defineAsyncComponent(() =>
|
||||||
|
import("@chat/components/chat/components/ChatList.vue")
|
||||||
|
),
|
||||||
|
// MobileFooter: defineAsyncComponent(() =>
|
||||||
|
// import("@chat/components/chat/components/MobileFooter.vue")
|
||||||
|
// ),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
|
@ -1,44 +0,0 @@
|
||||||
<template>
|
|
||||||
<router-view :key="$route.fullPath"></router-view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { mapActions } from "pinia";
|
|
||||||
import {clearBodyClass} from "@manuals/utilities"
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
userLastStateIsLoaded: true,
|
|
||||||
modalComponentName: "",
|
|
||||||
actionMode: 1,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
...mapActions(["setBodyClass", "getState"]),
|
|
||||||
},
|
|
||||||
|
|
||||||
beforeCreate() {
|
|
||||||
ApiService.init(import.meta.env.VITE_LIST_BASE_URL);
|
|
||||||
},
|
|
||||||
beforeMount() {
|
|
||||||
clearBodyClass();
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.setBodyClass(import.meta.env.VITE_CHAT_SYSTEM);
|
|
||||||
document.title = import.meta.env.VITE_CHAT_PAGE_TITLE;
|
|
||||||
},
|
|
||||||
destroyed() {
|
|
||||||
clearBodyClass();
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
/*@import "../assets/tahrir/scss/tahrir";*/
|
|
||||||
@import "../../assets/chat/scss/chat";
|
|
||||||
//@import '/animate.css';
|
|
||||||
|
|
||||||
</style>
|
|
|
@ -1,181 +0,0 @@
|
||||||
<template>
|
|
||||||
<section>
|
|
||||||
<!-- <the-sidebar :showUserAvatar="true" :menu="menu"></the-sidebar> -->
|
|
||||||
<the-sidebar
|
|
||||||
:showUserAvatar="true"
|
|
||||||
:menu="menu"
|
|
||||||
@statusPage="statusPage"
|
|
||||||
></the-sidebar>
|
|
||||||
|
|
||||||
<main
|
|
||||||
class="main-page__content"
|
|
||||||
:class="{ expanded: !isSidebarCollapsed }"
|
|
||||||
>
|
|
||||||
<!-- <div class="pages list-page"> -->
|
|
||||||
<!-- <div class="pages-content align-items-stretch p-0"> -->
|
|
||||||
<group
|
|
||||||
ref="chat-list-panel"
|
|
||||||
@update-messages="rerenderChatList++"
|
|
||||||
:show-header="statusPagHedear"
|
|
||||||
id="group"
|
|
||||||
></group>
|
|
||||||
|
|
||||||
<div class="flex-grow-1">
|
|
||||||
<div class="position-relative d-flex justify-content-center"></div>
|
|
||||||
<div v-if="listGetter">
|
|
||||||
<!-- <keep-alive max="30" :exclude="['projects']"> -->
|
|
||||||
<!-- <chat-list :key="rerenderChatList"></chat-list> -->
|
|
||||||
<chat-list
|
|
||||||
ref="chat-content"
|
|
||||||
:key="rerenderChatList"
|
|
||||||
@show="statusPage"
|
|
||||||
@my-event="openPagGrup"
|
|
||||||
></chat-list>
|
|
||||||
<!-- </keep-alive> -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-else class="no-group-selected" :class="$route.name">
|
|
||||||
<img
|
|
||||||
style="width: 10em"
|
|
||||||
class="img-fluid"
|
|
||||||
src="assets/common/img/logo/gray-logo.png"
|
|
||||||
alt="هم فهمی"
|
|
||||||
/>
|
|
||||||
<p class="title m-0">
|
|
||||||
{{ selectedListBackTitle($route.name) }}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<!-- </div> -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<mobile-footer></mobile-footer>
|
|
||||||
<!-- </div> -->
|
|
||||||
<!-- </div> -->
|
|
||||||
</main>
|
|
||||||
</section>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// import commentMixin from "~/mixins/commentMixin";
|
|
||||||
// import apis from "~/apis/listApi";
|
|
||||||
import { mapState, mapActions } from "pinia";
|
|
||||||
// import { handleErrors } from "";
|
|
||||||
import menu from "~/json/chat/json/menu.json";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
// mixins: [commentMixin],
|
|
||||||
|
|
||||||
mounted() {
|
|
||||||
this.TOGGLE_PANEL(false);
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
getPanelStatus(status) {
|
|
||||||
if (status) this.openForm();
|
|
||||||
else this.closeModal();
|
|
||||||
},
|
|
||||||
$route: {
|
|
||||||
handler: function () {
|
|
||||||
this.sidebarCollapsedSetter(true);
|
|
||||||
},
|
|
||||||
deep: true,
|
|
||||||
immediate: true,
|
|
||||||
},
|
|
||||||
// listIdGetter(newId) {
|
|
||||||
// this.filterBy(this.selectedFilter);
|
|
||||||
// },
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
// #region mehdi
|
|
||||||
nomber: 0,
|
|
||||||
statusPagHedear: 1,
|
|
||||||
|
|
||||||
// #endregion
|
|
||||||
rerenderChatList: 1,
|
|
||||||
showListPanel: false,
|
|
||||||
menu: menu,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["getPanelStatus", "isSidebarCollapsed","sidebarListStatusGetter"]),
|
|
||||||
...mapState("list", [
|
|
||||||
"listComponentNameGetter",
|
|
||||||
"selectedProjectGetter",
|
|
||||||
"listIdGetter",
|
|
||||||
"selectedItemGetter",
|
|
||||||
"listGetter",
|
|
||||||
]),
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
...mapActions([
|
|
||||||
"TOGGLE_PANEL",
|
|
||||||
"sidebarCollapsedSetter",
|
|
||||||
"SET_SIDEBAR_LIST_STATUS",
|
|
||||||
"SET_LIST_COMPONENT_NAME",
|
|
||||||
"SET_SELECTED_ITEM",
|
|
||||||
"SET_SELECTED_PROJECT",
|
|
||||||
"SET_LIST_ID",
|
|
||||||
"SET_LIST",
|
|
||||||
]),
|
|
||||||
...mapActions(["checkPermissions", "storeState", "getState"]),
|
|
||||||
selectedListBackTitle(name) {
|
|
||||||
if (name == "groups") return "دانشتو با بقیه به اشتراک بزار.";
|
|
||||||
if (name == "privates") return "به هر کی دوست داری، پیام بده.";
|
|
||||||
if (name == "lobbies") return "به تالار گفتگو خوش اومدی";
|
|
||||||
},
|
|
||||||
// showSearch() {
|
|
||||||
// search in current group, not all groups.
|
|
||||||
// this.$refs["chat-list-panel"].showSearchs(true);
|
|
||||||
// },
|
|
||||||
|
|
||||||
// #region mehdi
|
|
||||||
statusPage($event) {
|
|
||||||
const number = $event;
|
|
||||||
|
|
||||||
if (number == 1) {
|
|
||||||
if (this.$refs["chat-list-panel"].showMainpag == false) {
|
|
||||||
this.$refs["chat-list-panel"].showMainpag = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (this.$refs["chat-list-panel"].showMainpag == false) {
|
|
||||||
this.$refs["chat-list-panel"].showMainpag = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
toggleSidebarMenu() {
|
|
||||||
this.TOGGLE_SIDEBAR_MENU();
|
|
||||||
},
|
|
||||||
showToggleListPanel() {
|
|
||||||
this.showListPanel = !this.showListPanel;
|
|
||||||
this.$refs["chat-list-panel"].showMainpag = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
// #region mehdi
|
|
||||||
openPagGrup(data) {
|
|
||||||
this.enablePanelToggling = data;
|
|
||||||
if (this.enablePanelToggling == 1) {
|
|
||||||
this.showToggleListPanel();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// #endregion
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
// #region mehdi
|
|
||||||
// @media only screen and (min-width: 768px) and (max-width: 991.98px) {
|
|
||||||
// }
|
|
||||||
// @media only screen and (min-width: 576px) and (max-width: 766.98px) {
|
|
||||||
// }
|
|
||||||
// @media (max-width: 575.98px) {
|
|
||||||
// .pages-content {
|
|
||||||
// top: 0rem !important;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// #endregion
|
|
||||||
</style>
|
|
46
pages/index.vue
Normal file
46
pages/index.vue
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
<template>
|
||||||
|
<NuxtLayout name="default" :menu="menu">
|
||||||
|
<router-view></router-view>
|
||||||
|
</NuxtLayout>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { clearBodyClass } from "@manuals/utilities";
|
||||||
|
import menu from "@chat/json/chat/json/menu.json";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "chatRouterView",
|
||||||
|
setup() {
|
||||||
|
useHead({
|
||||||
|
title: import.meta.env.VITE_CHAT_PAGE_TITLE,
|
||||||
|
meta: [{ name: "description", content: "My page description" }],
|
||||||
|
bodyAttrs: {
|
||||||
|
class: import.meta.env.VITE_CHAT_SYSTEM,
|
||||||
|
},
|
||||||
|
bodyAttrs: {
|
||||||
|
class: import.meta.env.VITE_CHAT_SYSTEM,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
definePageMeta({
|
||||||
|
name: "chatRouterView",
|
||||||
|
layout: false,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
destroyed() {
|
||||||
|
clearBodyClass();
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
menu: menu,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
/*@import "../assets/tahrir/scss/tahrir";*/
|
||||||
|
@import "../assets/chat/scss/chat.scss";
|
||||||
|
//@import '/animate.css';
|
||||||
|
</style>
|
221
stores/chatStore.ts
Normal file
221
stores/chatStore.ts
Normal file
|
@ -0,0 +1,221 @@
|
||||||
|
import type { ForwardItem } from "~/types/commonTypes";
|
||||||
|
import type {
|
||||||
|
list,
|
||||||
|
listComponentName,
|
||||||
|
listId,
|
||||||
|
selectedItem,
|
||||||
|
selectedProject,
|
||||||
|
} from "~/types/listTypes";
|
||||||
|
|
||||||
|
export const useChatStore = defineStore("chatStore", {
|
||||||
|
persist: {
|
||||||
|
storage: piniaPluginPersistedstate.localStorage(),
|
||||||
|
},
|
||||||
|
state: () => ({
|
||||||
|
forwardItem: {} as ForwardItem,
|
||||||
|
|
||||||
|
sidebarListStatus: false,
|
||||||
|
|
||||||
|
selectedProject: undefined as selectedProject | undefined,
|
||||||
|
// isReturnFromItemshowPage: false as isReturnFromItemshowPage,
|
||||||
|
list: undefined as list | undefined,
|
||||||
|
listId: undefined as listId | undefined,
|
||||||
|
listComponentName: "ItemList" as listComponentName | undefined,
|
||||||
|
// projects: [] as projects[],
|
||||||
|
// // pieData: [],
|
||||||
|
selectedItem: undefined as selectedItem | undefined,
|
||||||
|
// domainActive: undefined as Domain | undefined,
|
||||||
|
// // activeTab: undefined,
|
||||||
|
// searchActiveTab: undefined as searchActiveTab | undefined,
|
||||||
|
// searchSchema: undefined as searchSchema | undefined,
|
||||||
|
// helpSchema: undefined as helpSchema | undefined,
|
||||||
|
// searchActiveSchema: undefined as searchActiveTab | undefined,
|
||||||
|
// helpActiveSchema: undefined as helpActiveSchema | undefined,
|
||||||
|
// searchListActiveTab: undefined as searchListActiveTab | undefined,
|
||||||
|
// searchListSchema: undefined as searchListActiveTab[] | undefined,
|
||||||
|
// activeSearchListSchema: undefined as activeSearchListSchema | undefined,
|
||||||
|
// searchChartActiveTab: undefined as searchChartActiveTab | undefined,
|
||||||
|
// searchChartSchema: undefined as searchChartActiveTab[] | undefined,
|
||||||
|
// activeSearchChartSchema: undefined as activeSearchChartSchema | undefined,
|
||||||
|
// searchSynonymTitle: undefined as searchSynonymTitle | undefined,
|
||||||
|
// searchSynonymForm: undefined as searchSynonymForm | undefined,
|
||||||
|
// selectionFilterItems: [] as selectionFilterItems,
|
||||||
|
}),
|
||||||
|
getters: {
|
||||||
|
getForwardItem: (state) => state.forwardItem,
|
||||||
|
|
||||||
|
sidebarListStatusGetter: (state) => state.sidebarListStatus,
|
||||||
|
|
||||||
|
// projectsGetter(state) {
|
||||||
|
// return state.projects;
|
||||||
|
// },
|
||||||
|
selectedProjectGetter(state) {
|
||||||
|
return state.selectedProject;
|
||||||
|
},
|
||||||
|
listIdGetter(state) {
|
||||||
|
return state.listId;
|
||||||
|
},
|
||||||
|
listComponentNameGetter(state) {
|
||||||
|
return state.listComponentName;
|
||||||
|
},
|
||||||
|
selectedItemGetter(state) {
|
||||||
|
return state.selectedItem;
|
||||||
|
},
|
||||||
|
// isReturnFromItemshowPageGetter(state) {
|
||||||
|
// return state.isReturnFromItemshowPage;
|
||||||
|
// },
|
||||||
|
listGetter(state) {
|
||||||
|
return state.list;
|
||||||
|
},
|
||||||
|
// searchSynonymTitleGetter(state) {
|
||||||
|
// return state.searchSynonymTitle;
|
||||||
|
// },
|
||||||
|
// searchSynonymFormGetter(state) {
|
||||||
|
// return state.searchSynonymForm;
|
||||||
|
// },
|
||||||
|
// domainActiveGetter(state) {
|
||||||
|
// return state.domainActive;
|
||||||
|
// },
|
||||||
|
// // activeTabGetter(state) {
|
||||||
|
// // return state.activeTab;
|
||||||
|
// // },
|
||||||
|
// // search page
|
||||||
|
// searchActiveTabGetter(state) {
|
||||||
|
// return state.searchActiveTab;
|
||||||
|
// },
|
||||||
|
// searchSchemaGetter(state) {
|
||||||
|
// return state.searchSchema;
|
||||||
|
// },
|
||||||
|
// helpSchemaGetter(state) {
|
||||||
|
// return state.helpSchema;
|
||||||
|
// },
|
||||||
|
// helpActiveSchemaGetter(state) {
|
||||||
|
// return state.helpActiveSchema;
|
||||||
|
// },
|
||||||
|
// searchActiveSchemaGetter(state) {
|
||||||
|
// return state.searchActiveSchema;
|
||||||
|
// },
|
||||||
|
// // search list
|
||||||
|
// searchListActiveTabGetter(state) {
|
||||||
|
// return state.searchListActiveTab;
|
||||||
|
// },
|
||||||
|
// searchListSchemaGetter(state) {
|
||||||
|
// return state.searchListSchema;
|
||||||
|
// },
|
||||||
|
// searchListActiveSchemaGetter(state) {
|
||||||
|
// return state.activeSearchListSchema;
|
||||||
|
// },
|
||||||
|
// // search chart
|
||||||
|
// searchChartActiveTabGetter(state) {
|
||||||
|
// return state.searchChartActiveTab;
|
||||||
|
// },
|
||||||
|
// searchChartSchemaGetter(state) {
|
||||||
|
// return state.searchChartSchema;
|
||||||
|
// },
|
||||||
|
// searchChartActiveSchemaGetter(state) {
|
||||||
|
// return state.activeSearchChartSchema;
|
||||||
|
// },
|
||||||
|
// selectionFilterItemsGetter(state) {
|
||||||
|
// return state.selectionFilterItems;
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
actions: {
|
||||||
|
SET_FORWARD_ITEM(forwardItem: ForwardItem) {
|
||||||
|
this.forwardItem = forwardItem;
|
||||||
|
},
|
||||||
|
chatSidebarListStatusReactor(newState: boolean) {
|
||||||
|
// this.SET_SIDEBAR_LIST_STATUS = newVal;
|
||||||
|
|
||||||
|
this.sidebarListStatus =
|
||||||
|
newState != undefined || newState != null
|
||||||
|
? newState
|
||||||
|
: !this.sidebarListStatus;
|
||||||
|
},
|
||||||
|
SET_SIDEBAR_LIST_STATUS(newState = undefined) {
|
||||||
|
this.sidebarListStatus =
|
||||||
|
newState != undefined || newState != null
|
||||||
|
? newState
|
||||||
|
: !this.sidebarListStatus;
|
||||||
|
},
|
||||||
|
SET_SELECTED_PROJECT(selectedProject = undefined) {
|
||||||
|
this.selectedProject = selectedProject;
|
||||||
|
},
|
||||||
|
SET_LIST_ID(listId = undefined) {
|
||||||
|
this.listId = listId;
|
||||||
|
},
|
||||||
|
SET_LIST_COMPONENT_NAME(
|
||||||
|
payload = { selectedItem: undefined, listComponentName: undefined }
|
||||||
|
) {
|
||||||
|
this.selectedItem = payload.selectedItem;
|
||||||
|
this.listComponentName = payload.listComponentName;
|
||||||
|
},
|
||||||
|
SET_SELECTED_ITEM(selectedItem = undefined) {
|
||||||
|
this.selectedItem = selectedItem;
|
||||||
|
},
|
||||||
|
// SET_IS_RETURN_FROM_ITEM_SHOW_PAGE(isReturnFromItemshowPage = false) {
|
||||||
|
// this.isReturnFromItemshowPage = isReturnFromItemshowPage;
|
||||||
|
// },
|
||||||
|
SET_LIST(list = undefined) {
|
||||||
|
this.list = list;
|
||||||
|
},
|
||||||
|
// searchSynonymFormSetter(searchSynonymForm = undefined) {
|
||||||
|
// this.searchSynonymForm = searchSynonymForm;
|
||||||
|
// },
|
||||||
|
// searchSynonymTitleSetter(searchSynonymTitle = undefined) {
|
||||||
|
// this.searchSynonymTitle = searchSynonymTitle;
|
||||||
|
// },
|
||||||
|
// domainActiveSetter(domain = undefined) {
|
||||||
|
// this.domainActive = domain;
|
||||||
|
// },
|
||||||
|
// // activeTabSetter(activeTab = undefined) {
|
||||||
|
// // this.activeTab = activeTab;
|
||||||
|
// // },
|
||||||
|
// // search page
|
||||||
|
// searchActiveTabSetter(searchActiveTab: searchActiveTab = undefined) {
|
||||||
|
// this.searchActiveTab = searchActiveTab;
|
||||||
|
// },
|
||||||
|
// searchSchemaSetter(searchSchema = undefined) {
|
||||||
|
// this.searchSchema = searchSchema;
|
||||||
|
// },
|
||||||
|
// helpSchemaSetter(helpSchema = undefined) {
|
||||||
|
// this.helpSchema = helpSchema;
|
||||||
|
// },
|
||||||
|
// helpActiveSchemaSetter(helpActiveSchema = undefined) {
|
||||||
|
// this.helpActiveSchema = helpActiveSchema;
|
||||||
|
// },
|
||||||
|
// searchActiveSchemaSetter(searchActiveSchema = undefined) {
|
||||||
|
// this.searchActiveSchema = searchActiveSchema;
|
||||||
|
// },
|
||||||
|
// // search list
|
||||||
|
// searchListActiveTabSetter(searchListActiveTab = undefined) {
|
||||||
|
// this.searchListActiveTab = searchListActiveTab;
|
||||||
|
// },
|
||||||
|
// searchListSchemaSetter(searchListSchema = undefined) {
|
||||||
|
// this.searchListSchema = searchListSchema;
|
||||||
|
// },
|
||||||
|
// searchListActiveSchemaSetter(activeSearchListSchema = undefined) {
|
||||||
|
// this.activeSearchListSchema = activeSearchListSchema;
|
||||||
|
// },
|
||||||
|
// // search chart
|
||||||
|
// searchChartActiveTabSetter(searchChartActiveTab = undefined) {
|
||||||
|
// this.searchChartActiveTab = searchChartActiveTab;
|
||||||
|
// },
|
||||||
|
// searchChartSchemaSetter(searchChartSchema = undefined) {
|
||||||
|
// this.searchChartSchema = searchChartSchema;
|
||||||
|
// },
|
||||||
|
// searchChartActiveSchemaSetter(activeSearchChartSchema = undefined) {
|
||||||
|
// this.activeSearchChartSchema = activeSearchChartSchema;
|
||||||
|
// },
|
||||||
|
// selectionFilterItemsSetter(selectionFilterItems = []) {
|
||||||
|
// this.selectionFilterItems = <selectionFilterItems>selectionFilterItems;
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
});
|
||||||
|
// export default {
|
||||||
|
// namespaced:true,
|
||||||
|
|
||||||
|
// state,
|
||||||
|
// actions,
|
||||||
|
// mutations,
|
||||||
|
// getters
|
||||||
|
// };
|
Loading…
Reference in New Issue
Block a user