chore: add shafafiat route
This commit is contained in:
+71
-124
@@ -2,9 +2,7 @@
|
||||
<div class="off-canvas">
|
||||
<div class="side d-none d-md-block">
|
||||
<div class="relativePos">
|
||||
<div
|
||||
class="closeBtn d-none d-md-inline-block"
|
||||
@click="closeOffCanvas">
|
||||
<div class="closeBtn d-none d-md-inline-block" @click="closeOffCanvas">
|
||||
<div class="x"></div>
|
||||
<span>بستن</span>
|
||||
</div>
|
||||
@@ -12,15 +10,12 @@
|
||||
</div>
|
||||
<div style="overflow-y: auto; width: 100%">
|
||||
<div class="main">
|
||||
<div
|
||||
class="closeBtnMobile d-block d-md-none"
|
||||
@click="closeOffCanvas">
|
||||
<div class="closeBtnMobile d-block d-md-none" @click="closeOffCanvas">
|
||||
<div class="x"></div>
|
||||
</div>
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div
|
||||
class="col-12 col-lg-4 order-0 order-lg-1 mb-5 mb-lg-0">
|
||||
<div class="col-12 col-lg-4 order-0 order-lg-1 mb-5 mb-lg-0">
|
||||
<div class="searchBox">
|
||||
<div class="title">
|
||||
<p class="title-search">
|
||||
@@ -32,7 +27,8 @@
|
||||
type="text"
|
||||
name="search"
|
||||
v-model="searchableText"
|
||||
placeholder="عبارت مدنظر خود را بنویسید" />
|
||||
placeholder="عبارت مدنظر خود را بنویسید"
|
||||
/>
|
||||
<button type="submit">
|
||||
<i class="fal fa-search"></i>
|
||||
</button>
|
||||
@@ -52,11 +48,10 @@
|
||||
},
|
||||
}"
|
||||
v-slot="{ navigate, href }"
|
||||
custom>
|
||||
custom
|
||||
>
|
||||
<div class="mt-3" @click="navigate">
|
||||
<a
|
||||
class="btn bigBtn btn-primary"
|
||||
:href="href">
|
||||
<a class="btn bigBtn btn-primary" :href="href">
|
||||
{{
|
||||
currentPortal === "ostandari"
|
||||
? "برو به صفحه ستاد انتخابات"
|
||||
@@ -77,13 +72,10 @@
|
||||
params: { portal: currentPortal },
|
||||
}"
|
||||
v-slot="{ href, navigate, isActive }"
|
||||
custom>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="isActive ? 'active' : null">
|
||||
<a class="mainLink" :href="href"
|
||||
>صفحه اصلی</a
|
||||
>
|
||||
custom
|
||||
>
|
||||
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||
<a class="mainLink" :href="href">صفحه اصلی</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
|
||||
@@ -94,13 +86,10 @@
|
||||
params: { portal: currentPortal },
|
||||
}"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="isActive ? 'active' : null">
|
||||
<a class="mainLink" :href="href"
|
||||
>تماس با ما</a
|
||||
>
|
||||
custom
|
||||
>
|
||||
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||
<a class="mainLink" :href="href">تماس با ما</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
|
||||
@@ -111,13 +100,10 @@
|
||||
params: { portal: currentPortal },
|
||||
}"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="isActive ? 'active' : null">
|
||||
<a class="mainLink" :href="href"
|
||||
>میز خدمت</a
|
||||
>
|
||||
custom
|
||||
>
|
||||
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||
<a class="mainLink" :href="href">میز خ2دمت</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
|
||||
@@ -137,20 +123,14 @@
|
||||
page: 1,
|
||||
},
|
||||
}"
|
||||
v-slot="{
|
||||
navigate,
|
||||
href,
|
||||
isActive,
|
||||
}"
|
||||
custom>
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="
|
||||
isActive ? 'active' : null
|
||||
">
|
||||
<a class="mainLink" :href="href"
|
||||
>عکس</a
|
||||
>
|
||||
:class="isActive ? 'active' : null"
|
||||
>
|
||||
<a class="mainLink" :href="href">عکس</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
|
||||
@@ -166,20 +146,14 @@
|
||||
page: 1,
|
||||
},
|
||||
}"
|
||||
v-slot="{
|
||||
navigate,
|
||||
href,
|
||||
isActive,
|
||||
}"
|
||||
custom>
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="
|
||||
isActive ? 'active' : null
|
||||
">
|
||||
<a class="mainLink" :href="href"
|
||||
>فیلم</a
|
||||
>
|
||||
:class="isActive ? 'active' : null"
|
||||
>
|
||||
<a class="mainLink" :href="href">فیلم</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
|
||||
@@ -195,42 +169,32 @@
|
||||
page: 1,
|
||||
},
|
||||
}"
|
||||
v-slot="{
|
||||
navigate,
|
||||
href,
|
||||
isActive,
|
||||
}"
|
||||
custom>
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="
|
||||
isActive ? 'active' : null
|
||||
">
|
||||
<a class="mainLink" :href="href"
|
||||
>گرافیک</a
|
||||
>
|
||||
:class="isActive ? 'active' : null"
|
||||
>
|
||||
<a class="mainLink" :href="href">گرافیک</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
|
||||
<nuxt-link
|
||||
class="col-12 col-md-4 mb-2"
|
||||
to="/ostandari/digital-books"
|
||||
v-slot="{
|
||||
navigate,
|
||||
href,
|
||||
isActive,
|
||||
}"
|
||||
custom>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="
|
||||
isActive ? 'active' : null
|
||||
">
|
||||
<a class="mainLink" :href="href"
|
||||
>کتابخانه دیجیتال</a
|
||||
class="col-12 col-md-4 mb-2"
|
||||
to="/ostandari/digital-books"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="isActive ? 'active' : null"
|
||||
>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
<a class="mainLink" :href="href"
|
||||
>کتابخانه دیجیتال</a
|
||||
>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
@@ -242,13 +206,10 @@
|
||||
params: { portal: currentPortal },
|
||||
}"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="isActive ? 'active' : null">
|
||||
<a class="mainLink" :href="href"
|
||||
>میز خدمت</a
|
||||
>
|
||||
custom
|
||||
>
|
||||
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||
<a class="mainLink" :href="href">میز خدمت</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
|
||||
@@ -265,12 +226,11 @@
|
||||
query: categoryURLQuery(item),
|
||||
}"
|
||||
v-slot="{ href, navigate, isActive }"
|
||||
custom>
|
||||
custom
|
||||
>
|
||||
<a class="mainLink">{{ item.title }}</a>
|
||||
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="isActive ? 'active' : null">
|
||||
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||
<div class="children">
|
||||
<ul>
|
||||
<!-- <nuxt-link-->
|
||||
@@ -288,9 +248,9 @@
|
||||
:data="item.childs"
|
||||
:props="defaultProps"
|
||||
accordion
|
||||
ref="tree">
|
||||
<div
|
||||
slot-scope="{ node, data }">
|
||||
ref="tree"
|
||||
>
|
||||
<div slot-scope="{ node, data }">
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-category-details',
|
||||
@@ -298,31 +258,19 @@
|
||||
portal: currentPortal,
|
||||
details: node.label,
|
||||
},
|
||||
query:
|
||||
categoryURLQuery(data),
|
||||
}"
|
||||
v-slot="{
|
||||
href,
|
||||
navigate,
|
||||
isActive,
|
||||
query: categoryURLQuery(data),
|
||||
}"
|
||||
v-slot="{ href, navigate, isActive }"
|
||||
custom
|
||||
:class="
|
||||
!data.childs.length &&
|
||||
'test'
|
||||
">
|
||||
:class="!data.childs.length && 'test'"
|
||||
>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="
|
||||
isActive
|
||||
? 'active'
|
||||
: null
|
||||
">
|
||||
<a
|
||||
class="subLink"
|
||||
:href="href"
|
||||
>{{ node.label }}</a
|
||||
>
|
||||
:class="isActive ? 'active' : null"
|
||||
>
|
||||
<a class="subLink" :href="href">{{
|
||||
node.label
|
||||
}}</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
@@ -441,8 +389,7 @@ export default {
|
||||
type: item.defaultPageType,
|
||||
id: item._id,
|
||||
};
|
||||
if (item.defaultPageType === "news")
|
||||
return { ...query, page: 1 };
|
||||
if (item.defaultPageType === "news") return { ...query, page: 1 };
|
||||
if (item.defaultPageType === "gallery")
|
||||
return { ...query, galleryType: "image", page: 1 };
|
||||
else return query;
|
||||
|
||||
+205
-91
@@ -2,12 +2,20 @@
|
||||
<div class="site--header">
|
||||
<div class="col-12">
|
||||
<!------------------------ countDown modal ------------------------>
|
||||
<el-dialog v-if="counterDown" append-to-body :visible.sync="showAlert" :show-close="false" :title="'مانده تا' + ' ' + counterDown.title">
|
||||
<el-dialog
|
||||
v-if="counterDown"
|
||||
append-to-body
|
||||
:visible.sync="showAlert"
|
||||
:show-close="false"
|
||||
:title="'مانده تا' + ' ' + counterDown.title"
|
||||
>
|
||||
<div>
|
||||
<flip-countdown :deadline="counterDown1[0]"></flip-countdown>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button class="btn bigBtn btn-primary" @click="showAlert = false">بستن</el-button>
|
||||
<el-button class="btn bigBtn btn-primary" @click="showAlert = false"
|
||||
>بستن</el-button
|
||||
>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!------------------------ countDown modal ------------------------>
|
||||
@@ -21,15 +29,27 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 site-top-left">
|
||||
<el-button type="text" @click="showAlert = true" v-if="counterDown">
|
||||
<span class="timer">{{ jDate2(counterDown.expireDate) + ' مانده تا ' + counterDown.title }}</span>
|
||||
<el-button
|
||||
type="text"
|
||||
@click="showAlert = true"
|
||||
v-if="counterDown"
|
||||
>
|
||||
<span class="timer">{{
|
||||
jDate2(counterDown.expireDate) +
|
||||
" مانده تا " +
|
||||
counterDown.title
|
||||
}}</span>
|
||||
</el-button>
|
||||
|
||||
<div class="email-top" v-else>
|
||||
<a class="email-text" :href="`mailto: ${yearBanner.email}`" target="_blank">{{ yearBanner.email }}</a>
|
||||
<a
|
||||
class="email-text"
|
||||
:href="`mailto: ${yearBanner.email}`"
|
||||
target="_blank"
|
||||
>{{ yearBanner.email }}</a
|
||||
>
|
||||
<i class="far fa-envelope"></i>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -37,9 +57,14 @@
|
||||
</div>
|
||||
|
||||
<div class="view-banner">
|
||||
<img v-if="yearBanner.iranFlag" class="iran-flag" src="~/assets/img/iran.png" alt="">
|
||||
<img
|
||||
v-if="yearBanner.iranFlag"
|
||||
class="iran-flag"
|
||||
src="~/assets/img/iran.png"
|
||||
alt=""
|
||||
/>
|
||||
<div class="banner">
|
||||
<img :src="yearBanner.mainCover" alt="">
|
||||
<img :src="yearBanner.mainCover" alt="" />
|
||||
</div>
|
||||
<div class="relativePos">
|
||||
<div class="container navigations">
|
||||
@@ -47,18 +72,36 @@
|
||||
<div class="col-12 col-lg-10 menu-desk">
|
||||
<nav>
|
||||
<ul>
|
||||
<nuxt-link :to="{name: 'portal',params: {portal: currentPortal}}" v-slot="{navigate,href,isActive}" custom exact>
|
||||
<nuxt-link
|
||||
:to="{ name: 'portal', params: { portal: currentPortal } }"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
exact
|
||||
>
|
||||
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||
<a :href="href">صفحه اصلی</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
<nuxt-link
|
||||
to="/ostandari/shafaf"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
>
|
||||
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||
<a :href="href">شفافیت</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
<!-- ***************** dynamic routes ***************** -->
|
||||
<nuxt-link
|
||||
v-for="item in header.categories"
|
||||
:key="item._id"
|
||||
:to="{name: 'portal-category-details',params: {portal: currentPortal,details: item.title},query: categoryURLQuery(item)}"
|
||||
v-slot="{navigate,href,isActive}"
|
||||
custom
|
||||
v-for="item in header.categories"
|
||||
:key="item._id"
|
||||
:to="{
|
||||
name: 'portal-category-details',
|
||||
params: { portal: currentPortal, details: item.title },
|
||||
query: categoryURLQuery(item),
|
||||
}"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
>
|
||||
<li :class="isActive ? 'active' : null">
|
||||
<a class="pointer">{{ item.title }}</a>
|
||||
@@ -73,12 +116,20 @@
|
||||
<!-- </li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- recursive tree -->
|
||||
<TreeItem :array="item.childs"/>
|
||||
<TreeItem :array="item.childs" />
|
||||
</div>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
|
||||
<!-- ***************** dynamic routes ***************** -->
|
||||
<nuxt-link :to="{name: 'portal-services' ,params: {portal: currentPortal}}" v-slot="{navigate,href,isActive}" custom>
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-services',
|
||||
params: { portal: currentPortal },
|
||||
}"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
>
|
||||
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||
<a :href="href">میز خدمت</a>
|
||||
</li>
|
||||
@@ -89,21 +140,23 @@
|
||||
<ul class="tree">
|
||||
<li class="treeItem">
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-gallery',
|
||||
params: {portal: currentPortal},
|
||||
query: {type:'image', page: 1}
|
||||
}">
|
||||
:to="{
|
||||
name: 'portal-gallery',
|
||||
params: { portal: currentPortal },
|
||||
query: { type: 'image', page: 1 },
|
||||
}"
|
||||
>
|
||||
عکس
|
||||
</nuxt-link>
|
||||
</li>
|
||||
<li class="treeItem">
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-videos',
|
||||
params: {portal: currentPortal},
|
||||
query: {type:'video', page: 1}
|
||||
}">
|
||||
:to="{
|
||||
name: 'portal-videos',
|
||||
params: { portal: currentPortal },
|
||||
query: { type: 'video', page: 1 },
|
||||
}"
|
||||
>
|
||||
فیلم
|
||||
</nuxt-link>
|
||||
<!-- <nuxt-link-->
|
||||
@@ -117,18 +170,17 @@
|
||||
</li>
|
||||
<li class="treeItem">
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-graphics',
|
||||
params: {portal: currentPortal},
|
||||
query: {type:'graphic', page: 1}
|
||||
}">
|
||||
:to="{
|
||||
name: 'portal-graphics',
|
||||
params: { portal: currentPortal },
|
||||
query: { type: 'graphic', page: 1 },
|
||||
}"
|
||||
>
|
||||
گرافیک
|
||||
</nuxt-link>
|
||||
</li>
|
||||
<li class="treeItem">
|
||||
<nuxt-link
|
||||
to="/ostandari/digital-books"
|
||||
>
|
||||
<nuxt-link to="/ostandari/digital-books">
|
||||
کتابخانه دیجیتال
|
||||
</nuxt-link>
|
||||
</li>
|
||||
@@ -136,35 +188,70 @@
|
||||
</div>
|
||||
</li>
|
||||
<nuxt-link
|
||||
v-if="yearBanner.electionBtn"
|
||||
:to="{name: 'portal',params: {portal: currentPortal === 'ostandari' ? 'election' : 'ostandari'}}"
|
||||
v-slot="{navigate,href}"
|
||||
custom
|
||||
v-if="yearBanner.electionBtn"
|
||||
:to="{
|
||||
name: 'portal',
|
||||
params: {
|
||||
portal:
|
||||
currentPortal === 'ostandari'
|
||||
? 'election'
|
||||
: 'ostandari',
|
||||
},
|
||||
}"
|
||||
v-slot="{ navigate, href }"
|
||||
custom
|
||||
>
|
||||
<li @click="navigate">
|
||||
<a :href="href">{{ currentPortal === 'ostandari' ? 'ستاد انتخابات' : 'استانداری' }}</a>
|
||||
<a :href="href">{{
|
||||
currentPortal === "ostandari"
|
||||
? "ستاد انتخابات"
|
||||
: "استانداری"
|
||||
}}</a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
<nuxt-link :to="{name: 'portal-info-page', params:{portal: currentPortal,page: 'aboutState'}}" v-slot="{navigate,href,isActive}" custom
|
||||
v-if="header.staticContents">
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-info-page',
|
||||
params: { portal: currentPortal, page: 'aboutState' },
|
||||
}"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
v-if="header.staticContents"
|
||||
>
|
||||
<li :class="isActive ? 'active' : null">
|
||||
<a class="pointer">درباره استان</a>
|
||||
|
||||
<div class="mega-menu">
|
||||
<!-- item route -->
|
||||
<ul class="tree">
|
||||
<nuxt-link :to="{name: 'portal-info-page', params:{portal: currentPortal,page: 'sima'}}" v-slot="{navigate,href,isActive}" custom>
|
||||
<li @click="navigate" :class="isActive ? 'active' : null" class="treeItem">
|
||||
<a :href="href">
|
||||
سیمای استان
|
||||
</a>
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-info-page',
|
||||
params: { portal: currentPortal, page: 'sima' },
|
||||
}"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
>
|
||||
<li
|
||||
@click="navigate"
|
||||
:class="isActive ? 'active' : null"
|
||||
class="treeItem"
|
||||
>
|
||||
<a :href="href"> سیمای استان </a>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</nuxt-link>
|
||||
<nuxt-link :to="{name: 'portal-contact' ,params: {portal: currentPortal}}" v-slot="{navigate,href,isActive}" custom>
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-contact',
|
||||
params: { portal: currentPortal },
|
||||
}"
|
||||
v-slot="{ navigate, href, isActive }"
|
||||
custom
|
||||
>
|
||||
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||
<a :href="href">تماس با ما</a>
|
||||
</li>
|
||||
@@ -175,7 +262,11 @@
|
||||
<div class="col-12 col-lg-2 left">
|
||||
<ul>
|
||||
<li class="searchBtns">
|
||||
<i class="fal fa-search" v-if="!searching" @click="search(true)"></i>
|
||||
<i
|
||||
class="fal fa-search"
|
||||
v-if="!searching"
|
||||
@click="search(true)"
|
||||
></i>
|
||||
<i class="fal fa-times" v-else @click="search(false)"></i>
|
||||
</li>
|
||||
<li class="menu" @click="showOffCanvas">
|
||||
@@ -185,12 +276,18 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchBox" :class="searching? 'active-search' : null">
|
||||
<div class="searchBox" :class="searching ? 'active-search' : null">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<form @submit.prevent="doSearch" class="searchInput">
|
||||
<input type="text" name="search" id="searchInput" placeholder="عبارت مدنظر خود را جستجو کنید" v-model="searchableText">
|
||||
<input
|
||||
type="text"
|
||||
name="search"
|
||||
id="searchInput"
|
||||
placeholder="عبارت مدنظر خود را جستجو کنید"
|
||||
v-model="searchableText"
|
||||
/>
|
||||
<button type="submit">
|
||||
<i class="fas fa-arrow-circle-left"></i>
|
||||
</button>
|
||||
@@ -205,93 +302,110 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import moment from 'moment-jalaali'
|
||||
import FlipCountdown from '~/components/vue2-flip-countdown.js'
|
||||
import moment from "moment-jalaali";
|
||||
import FlipCountdown from "~/components/vue2-flip-countdown.js";
|
||||
|
||||
export default {
|
||||
name: "SiteHeader",
|
||||
data() {
|
||||
return {
|
||||
searching: false,
|
||||
searchableText: '',
|
||||
searchableText: "",
|
||||
date: Date.now(),
|
||||
dialogTimeVisible: false,
|
||||
showAlert: false
|
||||
}
|
||||
showAlert: false,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
setInterval(() => this.date = Date.now(), 1000)
|
||||
setInterval(() => (this.date = Date.now()), 1000);
|
||||
$(window).scroll(() => {
|
||||
if ($(window).scrollTop() > 300) $('.app-front').addClass('miniHeader')
|
||||
if ($(window).scrollTop() < 290) $('.app-front').removeClass('miniHeader')
|
||||
})
|
||||
if ($(window).scrollTop() > 300) $(".app-front").addClass("miniHeader");
|
||||
if ($(window).scrollTop() < 290)
|
||||
$(".app-front").removeClass("miniHeader");
|
||||
});
|
||||
|
||||
if (this.$route.name !== 'portal') {
|
||||
if (this.$route.name !== "portal") {
|
||||
(async () => {
|
||||
try {
|
||||
const homeData = await this.$axios.get(`/api/public/home?portal=${this.$route.params.portal}`, {progress: false})
|
||||
this.$store.commit('front/setHomePageData', homeData.data)
|
||||
const homeData = await this.$axios.get(
|
||||
`/api/public/home?portal=${this.$route.params.portal}`,
|
||||
{ progress: false }
|
||||
);
|
||||
this.$store.commit("front/setHomePageData", homeData.data);
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
console.log(e);
|
||||
}
|
||||
})()
|
||||
})();
|
||||
}
|
||||
},
|
||||
components: {FlipCountdown},
|
||||
components: { FlipCountdown },
|
||||
computed: {
|
||||
yearBanner() {
|
||||
return this.$store.state.front.yearBanner
|
||||
return this.$store.state.front.yearBanner;
|
||||
},
|
||||
currentPortal() {
|
||||
return this.$route.params.portal
|
||||
return this.$route.params.portal;
|
||||
},
|
||||
header() {
|
||||
return this.$store.state.front.headerData
|
||||
return this.$store.state.front.headerData;
|
||||
},
|
||||
jDate() {
|
||||
return moment(this.date).locale('fa').format('dddd - LL - h:mm:ss ')
|
||||
return moment(this.date).locale("fa").format("dddd - LL - h:mm:ss ");
|
||||
},
|
||||
counterDown() {
|
||||
return this.$store.state.front.counterDown
|
||||
return this.$store.state.front.counterDown;
|
||||
},
|
||||
counterDown1() {
|
||||
return this.$store.state.front.counterDown.expireDate.split('T')
|
||||
return this.$store.state.front.counterDown.expireDate.split("T");
|
||||
},
|
||||
homePageData() {
|
||||
return this.$store.state.front.homePageData
|
||||
return this.$store.state.front.homePageData;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
categoryURLQuery(item) {
|
||||
const query = {type: item.defaultPageType, id: item._id}
|
||||
if (item.defaultPageType === 'news') return {...query, page: 1}
|
||||
if (item.defaultPageType === 'gallery-image') return {...query, page: 1, type: 'gallery', galleryType: 'image'}
|
||||
if (item.defaultPageType === 'gallery-video') return {...query, page: 1, type: 'gallery', galleryType: 'video'}
|
||||
if (item.defaultPageType === 'gallery-graphic') return {...query, page: 1, type: 'gallery', galleryType: 'graphic'}
|
||||
else return query
|
||||
const query = { type: item.defaultPageType, id: item._id };
|
||||
if (item.defaultPageType === "news") return { ...query, page: 1 };
|
||||
if (item.defaultPageType === "gallery-image")
|
||||
return { ...query, page: 1, type: "gallery", galleryType: "image" };
|
||||
if (item.defaultPageType === "gallery-video")
|
||||
return { ...query, page: 1, type: "gallery", galleryType: "video" };
|
||||
if (item.defaultPageType === "gallery-graphic")
|
||||
return { ...query, page: 1, type: "gallery", galleryType: "graphic" };
|
||||
else return query;
|
||||
},
|
||||
showOffCanvas() {
|
||||
this.$store.commit('front/setOffCanvas', true)
|
||||
this.$store.commit("front/setOffCanvas", true);
|
||||
},
|
||||
search(status) {
|
||||
this.searching = status
|
||||
if (status) setTimeout(() => $('#searchInput').focus(), 100)
|
||||
else this.searchableText = ''
|
||||
this.searching = status;
|
||||
if (status) setTimeout(() => $("#searchInput").focus(), 100);
|
||||
else this.searchableText = "";
|
||||
},
|
||||
doSearch() {
|
||||
if (this.searchableText.length) {
|
||||
this.$router.push({name: 'portal-search', params: {portal: this.currentPortal}, query: {sq: this.searchableText}})
|
||||
setTimeout(() => this.search(false), 100)
|
||||
this.$router.push({
|
||||
name: "portal-search",
|
||||
params: { portal: this.currentPortal },
|
||||
query: { sq: this.searchableText },
|
||||
});
|
||||
setTimeout(() => this.search(false), 100);
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: 'ابتدا عبارت مورد نظر را بنویسید'
|
||||
})
|
||||
type: "warning",
|
||||
message: "ابتدا عبارت مورد نظر را بنویسید",
|
||||
});
|
||||
}
|
||||
},
|
||||
jDate2(e) {
|
||||
return moment(e).locale('fa').fromNow(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
return moment(e).locale("fa").fromNow(true);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
li:nth-child(6) {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
<template>
|
||||
<div class="services-page">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<LineTxt label="شفافیت" />
|
||||
</div>
|
||||
|
||||
<div class="body">
|
||||
<div class="main">
|
||||
<div>
|
||||
<img
|
||||
class="tasvir"
|
||||
src="../../../static/images/shafaf.jpg"
|
||||
alt="logo"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
شفافیت سریع ترین، کم هزینه ترین، ساده ترین، مبنایی ترین و قابل
|
||||
اعتمادترین سازوکار برای مبارزه با فساد)هم در پیشگیری و هم کشف
|
||||
جرم(، افزایش مسئولیت پذیری و پاسخگویی، ارتقاء شایسته ساالری،
|
||||
مشارکت فعال و مؤثر مردمی، کاهش هزینه و زمان در پیشگیری و مبارزه با
|
||||
فساد، و در نتیجه افزایش کارآمدی و سرمایه اجتماعی است؛ با ایجاد
|
||||
شفافیت می توان عدالت را مستقر کرد و از ایجاد تبعیض های ناروا در
|
||||
نظام جلوگیری کرد.به همین جهت، سازمان فناوری اطالعات با همکاری
|
||||
سازمان غیردولتی شفافیت برای ایران اقدام به تاسیس کمیته شفافیت
|
||||
نموده است .پورتال شفافیت، اولین اقدام این استانداری در راستای
|
||||
توسعه شفافیت است. این پورتال به صورت مستمر از نظر محتوا و بستر به
|
||||
روز خواهد شد .
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cards">
|
||||
<div class="item">1</div>
|
||||
<div class="item">1</div>
|
||||
<div class="item">1</div>
|
||||
<div class="item">1</div>
|
||||
<div class="item">1</div>
|
||||
<div class="item">1</div>
|
||||
</div>
|
||||
<div class="space"></div>
|
||||
<!-- <div class="col-12 col-md-6 services-view">
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-services-election',
|
||||
params: { portal: currentPortal },
|
||||
}"
|
||||
class="services-item"
|
||||
>
|
||||
<i class="far fa-check-square"></i>
|
||||
<span>شرکت در انتخابات استانداری مرکزی</span>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 services-view">
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'portal-services-meeting',
|
||||
params: { portal: currentPortal },
|
||||
}"
|
||||
class="services-item"
|
||||
>
|
||||
<i class="far fa-check-square"></i>
|
||||
<span>ارتباط با استاندار</span>
|
||||
</nuxt-link>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
computed: {
|
||||
currentPortal() {
|
||||
return this.$route.params.portal;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 60%;
|
||||
border: 1px solid rgb(224, 222, 222);
|
||||
height: 280px;
|
||||
color: rgb(94, 94, 94);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border-radius: 10px;
|
||||
line-height: 25px;
|
||||
padding: 10px;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
|
||||
}
|
||||
.tasvir {
|
||||
width: 230px;
|
||||
height: 120px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.cards {
|
||||
margin: 50px 0px;
|
||||
display: grid;
|
||||
grid-template: 130px / auto auto auto auto auto auto;
|
||||
gap: 10px;
|
||||
}
|
||||
.item {
|
||||
background-color: aquamarine;
|
||||
height: 200px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.space {
|
||||
height: 50px;
|
||||
}
|
||||
</style>
|
||||
@@ -28,6 +28,7 @@ module.exports.sms = async (phoneNumber, message) => {
|
||||
SendDateTime: "",
|
||||
CanContinueInCaseOfError: "false",
|
||||
};
|
||||
|
||||
const response = await axios.post(
|
||||
`http://RestfulSms.com/api/MessageSend`,
|
||||
data,
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Reference in New Issue
Block a user