Commit 72f19a57 authored by 黄奎's avatar 黄奎

页面修改

parent d003c318
...@@ -224,13 +224,15 @@ ...@@ -224,13 +224,15 @@
:label="$q.platform.is.mobile ? '' : $t('query')" :label="$q.platform.is.mobile ? '' : $t('query')"
@click="setSearchHandler" @click="setSearchHandler"
/> />
<q-btn <template v-if="b2bUserInfo && b2bUserInfo.groupId == 2">
class="q-ml-sm" <q-btn
color="primary" class="q-ml-sm"
unelevated color="primary"
:label="$t('v102.CharteredBus.td')" unelevated
@click="goUrl" :label="$t('v102.CharteredBus.td')"
/> @click="goUrl"
/>
</template>
</div> </div>
</template> </template>
...@@ -245,6 +247,7 @@ import { CascaderOption, NCascader } from "naive-ui"; ...@@ -245,6 +247,7 @@ import { CascaderOption, NCascader } from "naive-ui";
import { ApiResult } from "src/@types/enumHelper"; import { ApiResult } from "src/@types/enumHelper";
import message from "src/utils/message"; import message from "src/utils/message";
import { useHotel } from "../../../utils/hotelRate"; import { useHotel } from "../../../utils/hotelRate";
import { getStoreGetter } from "../../../store/utils";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
export default { export default {
components: { svgIcon, NCascader }, components: { svgIcon, NCascader },
...@@ -252,6 +255,7 @@ export default { ...@@ -252,6 +255,7 @@ export default {
const $q = useQuasar(); const $q = useQuasar();
const $router = useRouter(); const $router = useRouter();
const qDateProxy = ref(null) as any; const qDateProxy = ref(null) as any;
const b2bUserInfo = getStoreGetter<UserGetter>("user", "getUser");
const data = reactive({ const data = reactive({
CharteredBusType: useHotel.getCharteredBusType(), CharteredBusType: useHotel.getCharteredBusType(),
provinces: [] as any, provinces: [] as any,
...@@ -416,6 +420,7 @@ export default { ...@@ -416,6 +420,7 @@ export default {
return { return {
qDateProxy, qDateProxy,
searchCnt, searchCnt,
b2bUserInfo,
...toRefs(data), ...toRefs(data),
...methods, ...methods,
}; };
......
<template> <template>
<div class="rounded-borders bg-white row items-center q-pa-md"> <div class="rounded-borders bg-white row items-center q-pa-md">
<q-select v-if="$q.platform.is.desktop" class="q-mr-md" style="min-width: 150px" v-model="search.OrderStatus" <q-select
@update:model-value="setOrderStatus" dense :options="status" emit-value option-label="StatusName" v-if="$q.platform.is.desktop"
option-value="StatusId" map-options :label="$t('hotelorder.search.status')" standout /> class="q-mr-md"
<q-input v-if="$q.platform.is.desktop" class="q-mr-md" v-model="search.OrderNo" dense standout style="min-width: 150px"
:label="$t('hotelorder.search.orderNum')" /> v-model="search.OrderStatus"
<q-field v-if="$q.platform.is.desktop" clearable v-model="dateRangeFormat" @update:model-value="setOrderStatus"
:label="$t('hotelorder.search.daterange')" standout class="col-2" style="min-width: 190px" dense> dense
<div class="self-center full-width no-outline" tabindex="0">{{ dateRangeFormat }}</div> :options="status"
emit-value
option-label="StatusName"
option-value="StatusId"
map-options
:label="$t('hotelorder.search.status')"
standout
/>
<q-input
v-if="$q.platform.is.desktop"
class="q-mr-md"
v-model="search.OrderNo"
dense
standout
:label="$t('hotelorder.search.orderNum')"
/>
<q-field
v-if="$q.platform.is.desktop"
clearable
v-model="dateRangeFormat"
:label="$t('hotelorder.search.daterange')"
standout
class="col-2"
style="min-width: 190px"
dense
>
<div class="self-center full-width no-outline" tabindex="0">
{{ dateRangeFormat }}
</div>
<q-popup-proxy :offset="[0, 10]" ref="qDateProxy"> <q-popup-proxy :offset="[0, 10]" ref="qDateProxy">
<q-date v-model="dateRange" :options="optionsFn" range mask="YYYY/MM/DD" landscape <q-date
@range-end="dateRangeHandler"></q-date> v-model="dateRange"
:options="optionsFn"
range
mask="YYYY/MM/DD"
landscape
@range-end="dateRangeHandler"
></q-date>
</q-popup-proxy> </q-popup-proxy>
</q-field> </q-field>
<div class="col"></div> <div class="col"></div>
<q-btn unelevated class="bg-grey-3 hover q-mr-md" :title="$t('morequery')"> <q-btn unelevated class="bg-grey-3 hover q-mr-md" :title="$t('morequery')">
<q-badge rounded class="din bg-red-2 text-red-14 text-weight-bold" floating :label="searchCnt" <q-badge
v-if="searchCnt > 0" /> rounded
<svg-icon color="dark" icon="Text/Filter.svg" :tips="$t('morequery')" :size="20"></svg-icon> class="din bg-red-2 text-red-14 text-weight-bold"
<q-tooltip>{{ $t('morequery') }}</q-tooltip> floating
<q-popup-proxy class="no-shadow" style="box-shadow: 0 0 50px #ddd !important" :offset="[0, 20]" :label="searchCnt"
:model-value="canHide"> v-if="searchCnt > 0"
/>
<svg-icon
color="dark"
icon="Text/Filter.svg"
:tips="$t('morequery')"
:size="20"
></svg-icon>
<q-tooltip>{{ $t("morequery") }}</q-tooltip>
<q-popup-proxy
class="no-shadow"
style="box-shadow: 0 0 50px #ddd !important"
:offset="[0, 20]"
:model-value="canHide"
>
<q-card class="q-pa-md rounded-borders" style="width: 300px"> <q-card class="q-pa-md rounded-borders" style="width: 300px">
<div class="q-mb-md text-subtitle2">{{ $t('morequery') }}</div> <div class="q-mb-md text-subtitle2">{{ $t("morequery") }}</div>
<div class="q-mt-md row"> <div class="q-mt-md row">
<q-input v-model="search.OrderNo" dense standout :label="$t('hotelorder.search.orderNum')" <q-input
class="mobile-only col q-mr-md" /> v-model="search.OrderNo"
<q-input v-model="search.OrderId" dense standout :label="$t('hotelorder.search.orderId')" class="col" /> dense
standout
:label="$t('hotelorder.search.orderNum')"
class="mobile-only col q-mr-md"
/>
<q-input
v-model="search.OrderId"
dense
standout
:label="$t('hotelorder.search.orderId')"
class="col"
/>
</div> </div>
<div class="mobile-only q-mt-md"> <div class="mobile-only q-mt-md">
<q-field clearable v-model="dateRangeFormat" :label="$t('hotelorder.search.daterange')" standout <q-field
style="min-width: 190px" dense> clearable
<div class="self-center full-width no-outline" tabindex="0">{{ dateRangeFormat }}</div> v-model="dateRangeFormat"
:label="$t('hotelorder.search.daterange')"
standout
style="min-width: 190px"
dense
>
<div class="self-center full-width no-outline" tabindex="0">
{{ dateRangeFormat }}
</div>
<q-popup-proxy :offset="[0, 10]" ref="qDateProxy"> <q-popup-proxy :offset="[0, 10]" ref="qDateProxy">
<q-date v-model="dateRange" :options="optionsFn" range mask="YYYY/MM/DD" <q-date
@range-end="dateRangeHandler"></q-date> v-model="dateRange"
:options="optionsFn"
range
mask="YYYY/MM/DD"
@range-end="dateRangeHandler"
></q-date>
</q-popup-proxy> </q-popup-proxy>
</q-field> </q-field>
</div> </div>
<q-select class="q-mt-md" v-model="search.RoomType" dense :options="rooms" emit-value option-label="TypeName" <q-select
option-value="TypeId" map-options :label="$t('hotelorder.search.roomType')" standout /> class="q-mt-md"
<q-select class="q-mt-md" v-model="search.OrderType" dense :options="orderTypes" emit-value v-model="search.RoomType"
option-label="TypeName" option-value="TypeId" map-options :label="$t('hotelorder.search.orderType')" dense
standout /> :options="rooms"
<q-input v-model="search.TCNum" dense standout :label="$t('hotelorder.search.tcNum')" class="q-mt-md" emit-value
v-if="search.OrderType == 2" /> option-label="TypeName"
<q-input v-model="search.ContactName" :placeholder="$t('hotelorder.search.contactInfoHolder')" dense standout option-value="TypeId"
:label="$t('hotelorder.search.contactInfo')" class="q-mt-md" v-if="search.OrderType == 1" /> map-options
:label="$t('hotelorder.search.roomType')"
standout
/>
<q-select
class="q-mt-md"
v-model="search.OrderType"
dense
:options="orderTypes"
emit-value
option-label="TypeName"
option-value="TypeId"
map-options
:label="$t('hotelorder.search.orderType')"
standout
/>
<q-input
v-model="search.TCNum"
dense
standout
:label="$t('hotelorder.search.tcNum')"
class="q-mt-md"
v-if="search.OrderType == 2"
/>
<q-input
v-model="search.ContactName"
:placeholder="$t('hotelorder.search.contactInfoHolder')"
dense
standout
:label="$t('hotelorder.search.contactInfo')"
class="q-mt-md"
v-if="search.OrderType == 1"
/>
</q-card> </q-card>
</q-popup-proxy> </q-popup-proxy>
</q-btn> </q-btn>
<q-btn unelevated class="bg-blue-1 text-primary hover q-mr-md" :label="$t('hotelorder.recovery')" /> <template v-if="b2bUserInfo && b2bUserInfo.groupId == 2">
<q-btn
unelevated
class="bg-blue-1 text-primary hover q-mr-md"
:label="$t('hotelorder.recovery')"
/>
</template>
<q-btn color="primary" unelevated :label="$t('query')" @click="setQueryHandler" /> <q-btn color="primary" unelevated :label="$t('query')" @click="setQueryHandler" />
</div> </div>
<div class="rounded-borders bg-white q-pa-sm q-mt-md mobile-only"> <div class="rounded-borders bg-white q-pa-sm q-mt-md mobile-only">
<q-tabs v-model="search.OrderStatus" class="text-cyan" dense> <q-tabs v-model="search.OrderStatus" class="text-cyan" dense>
<q-tab :name="x.StatusId" :label="x.StatusName" v-for="x in status" @click="setOrderStatus(x.StatusId)" /> <q-tab
:name="x.StatusId"
:label="x.StatusName"
v-for="x in status"
@click="setOrderStatus(x.StatusId)"
/>
</q-tabs> </q-tabs>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { DirtionmaryHelper } from '../../../../config/dictionary' import { DirtionmaryHelper } from "../../../../config/dictionary";
import { computed, defineComponent, inject, reactive, ref, toRefs } from 'vue' import { computed, defineComponent, inject, reactive, ref, toRefs } from "vue";
import { OrderType, RoomType, StandardStatus } from '../../../../@types' import { OrderType, RoomType, StandardStatus } from "../../../../@types";
import { getHotelOrderStatus, getHotelOrderType, getHotelRoomType } from '../../../../utils/tools' import { getStoreGetter } from "../../../../store/utils";
import { date, useQuasar } from 'quasar' import {
import svgIcon from '../../../global/svg-icon.vue' getHotelOrderStatus,
getHotelOrderType,
getHotelRoomType,
} from "../../../../utils/tools";
import { date, useQuasar } from "quasar";
import svgIcon from "../../../global/svg-icon.vue";
export default defineComponent({ export default defineComponent({
components: { svgIcon }, components: { svgIcon },
setup(props) { setup(props) {
const qDateProxy = ref(null) as any const qDateProxy = ref(null) as any;
const $q = useQuasar() const $q = useQuasar();
const b2bUserInfo = getStoreGetter<UserGetter>("user", "getUser");
const data = reactive({ const data = reactive({
status: [] as Array<StandardStatus>, status: [] as Array<StandardStatus>,
cancelStatus: {} as StandardStatus | undefined, cancelStatus: {} as StandardStatus | undefined,
dateRangeFormat: '', dateRangeFormat: "",
dateRange: {} as any, dateRange: {} as any,
rooms: [] as Array<RoomType>, rooms: [] as Array<RoomType>,
orderTypes: [] as Array<OrderType>, orderTypes: [] as Array<OrderType>,
canHide: false canHide: false,
}) });
const realSearch = inject(DirtionmaryHelper.HOTEL_ORDER_SEARCH) as any const realSearch = inject(DirtionmaryHelper.HOTEL_ORDER_SEARCH) as any;
const search = reactive(JSON.parse(JSON.stringify(realSearch))) const search = reactive(JSON.parse(JSON.stringify(realSearch)));
const methods = { const methods = {
initStatus() { initStatus() {
let allStatus = getHotelOrderStatus() let allStatus = getHotelOrderStatus();
data.status = allStatus.filter((x: StandardStatus) => { data.status = allStatus.filter((x: StandardStatus) => {
return x.StatusId != 3 return x.StatusId != 3;
}) });
data.cancelStatus = allStatus.find((x: StandardStatus) => { data.cancelStatus = allStatus.find((x: StandardStatus) => {
return x.StatusId == 3 return x.StatusId == 3;
}) });
data.rooms = getHotelRoomType(true) data.rooms = getHotelRoomType(true);
data.orderTypes = getHotelOrderType(true) data.orderTypes = getHotelOrderType(true);
}, },
optionsFn(cd: any) { optionsFn(cd: any) {
return cd < date.formatDate(date.addToDate(new Date(), { days: 1 }), 'YYYY/MM/DD') return (
cd < date.formatDate(date.addToDate(new Date(), { days: 1 }), "YYYY/MM/DD")
);
}, },
dateRangeHandler(e: any) { dateRangeHandler(e: any) {
search.StartTime = `${e.from.year}/${e.from.month}/${e.from.day}` search.StartTime = `${e.from.year}/${e.from.month}/${e.from.day}`;
search.EndTime = `${e.to.year}/${e.to.month}/${e.to.day} ` search.EndTime = `${e.to.year}/${e.to.month}/${e.to.day} `;
data.dateRangeFormat = `${search.StartTime} - ${search.EndTime} ` data.dateRangeFormat = `${search.StartTime} - ${search.EndTime} `;
if (qDateProxy.value) qDateProxy.value.hide() if (qDateProxy.value) qDateProxy.value.hide();
}, },
setQueryHandler() { setQueryHandler() {
realSearch.OrderId = search.OrderId realSearch.OrderId = search.OrderId;
realSearch.RoomType = search.RoomType realSearch.RoomType = search.RoomType;
realSearch.StartTime = search.StartTime realSearch.StartTime = search.StartTime;
realSearch.EndTime = search.EndTime realSearch.EndTime = search.EndTime;
realSearch.OrderStatus = search.OrderStatus realSearch.OrderStatus = search.OrderStatus;
realSearch.OrderNo = search.OrderNo realSearch.OrderNo = search.OrderNo;
realSearch.OrderType = search.OrderType realSearch.OrderType = search.OrderType;
realSearch.TCNum = search.TCNum realSearch.TCNum = search.TCNum;
realSearch.ContactName = search.ContactName realSearch.ContactName = search.ContactName;
realSearch.ContactNumber = search.ContactName realSearch.ContactNumber = search.ContactName;
console.log(realSearch) console.log(realSearch);
}, },
setOrderStatus(statusId: number) { setOrderStatus(statusId: number) {
realSearch.OrderStatus = statusId realSearch.OrderStatus = statusId;
} },
} };
const searchCnt = computed(() => { const searchCnt = computed(() => {
let setCnt = 0 let setCnt = 0;
if ($q.platform.is.mobile) { if ($q.platform.is.mobile) {
if (search.OrderStatus > 0) setCnt++ if (search.OrderStatus > 0) setCnt++;
if (search.StartTime.length > 0) setCnt++ if (search.StartTime.length > 0) setCnt++;
if (search.OrderNo > 0) setCnt++ if (search.OrderNo > 0) setCnt++;
} }
if (search.OrderId>0) setCnt++ if (search.OrderId > 0) setCnt++;
if (search.RoomType > 0) setCnt++ if (search.RoomType > 0) setCnt++;
if (search.OrderType > 0) setCnt++ if (search.OrderType > 0) setCnt++;
if (search.OrderType == 1 && search.ContactName.length > 0) setCnt++ if (search.OrderType == 1 && search.ContactName.length > 0) setCnt++;
if (search.OrderType == 2 && search.TCNum.length > 0) setCnt++ if (search.OrderType == 2 && search.TCNum.length > 0) setCnt++;
return setCnt return setCnt;
}) });
methods.initStatus() methods.initStatus();
return { return {
...toRefs(data), ...toRefs(data),
...methods, ...methods,
search, search,
searchCnt searchCnt,
} b2bUserInfo,
} };
}) },
});
</script> </script>
<style> <style></style>
</style>
<template> <template>
<q-card flat class="bg-white q-pa-none q-py-sm" style="width: 275px; shadow: 0px 0px 50px 0px rgba(82, 63, 105, 0.15)"> <q-card
flat
class="bg-white q-pa-none q-py-sm"
style="width: 275px; shadow: 0px 0px 50px 0px rgba(82, 63, 105, 0.15)"
>
<div class="q-px-sm"> <div class="q-px-sm">
<div class="q-pa-sm row"> <div class="q-pa-sm row">
<q-avatar size="50px" rounded class="bg-blue-2 cursor-pointer q-mr-md"> <q-avatar size="50px" rounded class="bg-blue-2 cursor-pointer q-mr-md">
<q-img :src="user.photo" v-if="user?.photo" mode="cover" /> <q-img :src="user.photo" v-if="user?.photo" mode="cover" />
<span class="text-primary text-h6" v-else>{{ user?.name.substring(0, 1) }}</span> <span class="text-primary text-h6" v-else>{{
user?.name.substring(0, 1)
}}</span>
</q-avatar> </q-avatar>
<div class="col column"> <div class="col column">
<div class="col row items-center"> <div class="col row items-center">
<span class="text-weight-bold text-subtitle1 q-mr-md">{{ user?.name }}</span> <span class="text-weight-bold text-subtitle1 q-mr-md">{{ user?.name }}</span>
<span class="bg-green-11 text-green-14 rounded-borders q-px-sm">{{$t('verified')}}</span> <span class="bg-green-11 text-green-14 rounded-borders q-px-sm">{{
$t("verified")
}}</span>
</div> </div>
<div class="f12 text-grey-6 f12">{{ user?.account }}</div> <div class="f12 text-grey-6 f12">{{ user?.account }}</div>
</div> </div>
...@@ -18,110 +26,126 @@ ...@@ -18,110 +26,126 @@
<q-separator color="grey-3" class="q-my-sm" /> <q-separator color="grey-3" class="q-my-sm" />
<q-list class="q-px-md text-subtitle2"> <q-list class="q-px-md text-subtitle2">
<q-item clickable v-ripple class="rounded-borders lang-demo"> <q-item clickable v-ripple class="rounded-borders lang-demo">
<q-item-section @click="goUrl('/personal')">{{ $t('userMenu.mypro') }}</q-item-section> <q-item-section @click="goUrl('/personal')">{{
</q-item> $t("userMenu.mypro")
<q-item clickable v-ripple class="rounded-borders lang-demo"> }}</q-item-section>
<q-item-section>
<div class="row items-center">
<div class="q-mr-md">{{ $t('userMenu.myfinace') }}</div>
<q-badge rounded class="din bg-red-2 text-red-14 text-weight-bold" label="3" />
</div>
</q-item-section>
</q-item>
<q-item clickable v-ripple class="rounded-borders lang-demo">
<q-item-section>{{ $t('userMenu.fapiao') }}</q-item-section>
</q-item>
<q-item clickable v-ripple class="rounded-borders lang-demo">
<q-item-section @click="goUrl('/passbook')">{{ $t('v104.passbook.pageTitle') }}</q-item-section>
</q-item> </q-item>
<template v-if="user && user.groupId == 2">
<q-item clickable v-ripple class="rounded-borders lang-demo">
<q-item-section>
<div class="row items-center">
<div class="q-mr-md">{{ $t("userMenu.myfinace") }}</div>
<q-badge
rounded
class="din bg-red-2 text-red-14 text-weight-bold"
label="3"
/>
</div>
</q-item-section>
</q-item>
<q-item clickable v-ripple class="rounded-borders lang-demo">
<q-item-section>{{ $t("userMenu.fapiao") }} {{ user }}</q-item-section>
</q-item>
<q-item clickable v-ripple class="rounded-borders lang-demo">
<q-item-section @click="goUrl('/passbook')">{{
$t("v104.passbook.pageTitle")
}}</q-item-section>
</q-item>
</template>
</q-list> </q-list>
<q-separator color="grey-3" class="q-my-sm" /> <q-separator color="grey-3" class="q-my-sm" />
<q-list class="q-px-md text-subtitle2"> <q-list class="q-px-md text-subtitle2">
<q-item clickable v-ripple class="rounded-borders lang-demo"> <q-item clickable v-ripple class="rounded-borders lang-demo">
<q-item-section> <q-item-section>
<div class="row"> <div class="row">
<div class="col">{{ $t('userMenu.lang') }}</div> <div class="col">{{ $t("userMenu.lang") }}</div>
<div class="lang-box bg-grey-2 q-px-sm rounded-borders"> <div class="lang-box bg-grey-2 q-px-sm rounded-borders">
<span>{{currentLang.langName}}</span> <span>{{ currentLang.langName }}</span>
<q-popup-proxy class="no-shadow"> <q-popup-proxy class="no-shadow">
<q-card class="q-pa-sm" flat dark> <q-card class="q-pa-sm" flat dark>
<q-list> <q-list>
<q-item class="rounded-borders" clickable v-ripple v-for="(x,i) in langs" @click="getLanguage(x)"> <q-item
<q-item-section> class="rounded-borders"
<div class="row"> clickable
<div class="f12 dark col">{{x.langName}}</div> v-ripple
</div> v-for="(x, i) in langs"
</q-item-section> @click="getLanguage(x)"
</q-item> >
</q-list> <q-item-section>
</q-card> <div class="row">
</q-popup-proxy> <div class="f12 dark col">{{ x.langName }}</div>
</div> </div>
</q-item-section>
</q-item>
</q-list>
</q-card>
</q-popup-proxy>
</div> </div>
</div>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-item clickable v-ripple class="rounded-borders lang-demo" @click="signOut"> <q-item clickable v-ripple class="rounded-borders lang-demo" @click="signOut">
<q-item-section>{{ $t('userMenu.signOut') }}</q-item-section> <q-item-section>{{ $t("userMenu.signOut") }}</q-item-section>
</q-item> </q-item>
</q-list> </q-list>
</q-card> </q-card>
</template> </template>
<script lang="ts"> <script lang="ts">
import { useRouter } from 'vue-router'; import { useRouter } from "vue-router";
import { defineComponent, ref, reactive, toRefs, provide } from 'vue' import { defineComponent, ref, reactive, toRefs, provide } from "vue";
import { getLangs } from "../../utils/tools"; import { getLangs } from "../../utils/tools";
import { SitLang } from '../../@types'; import { SitLang } from "../../@types";
import { useI18n } from 'vue-i18n' import { useI18n } from "vue-i18n";
import { dispatchAction } from '../../store/utils'; import { dispatchAction } from "../../store/utils";
import { UserActionsType } from '../../store/modules/user/actions'; import { UserActionsType } from "../../store/modules/user/actions";
export default defineComponent({ export default defineComponent({
name: 'user-info', name: "user-info",
props: { props: {
user: { user: {
type: Object, type: Object,
require: true require: true,
} },
}, },
setup(props) { setup(props) {
const $router = useRouter(); const $router = useRouter();
const {locale,t } = useI18n(); const { locale, t } = useI18n();
const data=reactive({ const data = reactive({
currentLang: {} as SitLang, currentLang: {} as SitLang,
langs:[] as SitLang[], langs: [] as SitLang[],
}) });
data.langs=getLangs() data.langs = getLangs();
if(data.langs && data.langs.length>0){ if (data.langs && data.langs.length > 0) {
data.currentLang = data.langs.find(x=> x.langLocale==locale.value) ?? {}; data.currentLang = data.langs.find((x) => x.langLocale == locale.value) ?? {};
} }
// 切换语言 // 切换语言
const methods = { const methods = {
goUrl(url:string){ goUrl(url: string) {
$router.push({ path:url}) $router.push({ path: url });
}, },
getLanguage (val:SitLang) { getLanguage(val: SitLang) {
locale.value = val.langLocale??'' locale.value = val.langLocale ?? "";
data.currentLang=val data.currentLang = val;
localStorage.setItem('lanuage', val.langLocale??'') localStorage.setItem("lanuage", val.langLocale ?? "");
window.location.reload() window.location.reload();
}, },
signOut(){ signOut() {
dispatchAction<UserActionsType>('user', 'setUserSignout', null) dispatchAction<UserActionsType>("user", "setUserSignout", null);
window.location.reload() window.location.reload();
} },
} };
return {...toRefs(data),...methods} return { ...toRefs(data), ...methods };
} },
}) });
</script> </script>
<style> <style>
.lang-demo:hover .lang-box{ .lang-demo:hover .lang-box {
background: unset !important; background: unset !important;
} }
.lang-demo:hover .q-item__section{ .lang-demo:hover .q-item__section {
color:var(--q-primary) !important; color: var(--q-primary) !important;
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment