chore: add shafafiat route
This commit is contained in:
+71
-124
@@ -2,9 +2,7 @@
|
|||||||
<div class="off-canvas">
|
<div class="off-canvas">
|
||||||
<div class="side d-none d-md-block">
|
<div class="side d-none d-md-block">
|
||||||
<div class="relativePos">
|
<div class="relativePos">
|
||||||
<div
|
<div class="closeBtn d-none d-md-inline-block" @click="closeOffCanvas">
|
||||||
class="closeBtn d-none d-md-inline-block"
|
|
||||||
@click="closeOffCanvas">
|
|
||||||
<div class="x"></div>
|
<div class="x"></div>
|
||||||
<span>بستن</span>
|
<span>بستن</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -12,15 +10,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="overflow-y: auto; width: 100%">
|
<div style="overflow-y: auto; width: 100%">
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<div
|
<div class="closeBtnMobile d-block d-md-none" @click="closeOffCanvas">
|
||||||
class="closeBtnMobile d-block d-md-none"
|
|
||||||
@click="closeOffCanvas">
|
|
||||||
<div class="x"></div>
|
<div class="x"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div
|
<div class="col-12 col-lg-4 order-0 order-lg-1 mb-5 mb-lg-0">
|
||||||
class="col-12 col-lg-4 order-0 order-lg-1 mb-5 mb-lg-0">
|
|
||||||
<div class="searchBox">
|
<div class="searchBox">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<p class="title-search">
|
<p class="title-search">
|
||||||
@@ -32,7 +27,8 @@
|
|||||||
type="text"
|
type="text"
|
||||||
name="search"
|
name="search"
|
||||||
v-model="searchableText"
|
v-model="searchableText"
|
||||||
placeholder="عبارت مدنظر خود را بنویسید" />
|
placeholder="عبارت مدنظر خود را بنویسید"
|
||||||
|
/>
|
||||||
<button type="submit">
|
<button type="submit">
|
||||||
<i class="fal fa-search"></i>
|
<i class="fal fa-search"></i>
|
||||||
</button>
|
</button>
|
||||||
@@ -52,11 +48,10 @@
|
|||||||
},
|
},
|
||||||
}"
|
}"
|
||||||
v-slot="{ navigate, href }"
|
v-slot="{ navigate, href }"
|
||||||
custom>
|
custom
|
||||||
|
>
|
||||||
<div class="mt-3" @click="navigate">
|
<div class="mt-3" @click="navigate">
|
||||||
<a
|
<a class="btn bigBtn btn-primary" :href="href">
|
||||||
class="btn bigBtn btn-primary"
|
|
||||||
:href="href">
|
|
||||||
{{
|
{{
|
||||||
currentPortal === "ostandari"
|
currentPortal === "ostandari"
|
||||||
? "برو به صفحه ستاد انتخابات"
|
? "برو به صفحه ستاد انتخابات"
|
||||||
@@ -77,13 +72,10 @@
|
|||||||
params: { portal: currentPortal },
|
params: { portal: currentPortal },
|
||||||
}"
|
}"
|
||||||
v-slot="{ href, navigate, isActive }"
|
v-slot="{ href, navigate, isActive }"
|
||||||
custom>
|
custom
|
||||||
<li
|
>
|
||||||
@click="navigate"
|
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||||
:class="isActive ? 'active' : null">
|
<a class="mainLink" :href="href">صفحه اصلی</a>
|
||||||
<a class="mainLink" :href="href"
|
|
||||||
>صفحه اصلی</a
|
|
||||||
>
|
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|
||||||
@@ -94,13 +86,10 @@
|
|||||||
params: { portal: currentPortal },
|
params: { portal: currentPortal },
|
||||||
}"
|
}"
|
||||||
v-slot="{ navigate, href, isActive }"
|
v-slot="{ navigate, href, isActive }"
|
||||||
custom>
|
custom
|
||||||
<li
|
>
|
||||||
@click="navigate"
|
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||||
:class="isActive ? 'active' : null">
|
<a class="mainLink" :href="href">تماس با ما</a>
|
||||||
<a class="mainLink" :href="href"
|
|
||||||
>تماس با ما</a
|
|
||||||
>
|
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|
||||||
@@ -111,13 +100,10 @@
|
|||||||
params: { portal: currentPortal },
|
params: { portal: currentPortal },
|
||||||
}"
|
}"
|
||||||
v-slot="{ navigate, href, isActive }"
|
v-slot="{ navigate, href, isActive }"
|
||||||
custom>
|
custom
|
||||||
<li
|
>
|
||||||
@click="navigate"
|
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||||
:class="isActive ? 'active' : null">
|
<a class="mainLink" :href="href">میز خ2دمت</a>
|
||||||
<a class="mainLink" :href="href"
|
|
||||||
>میز خدمت</a
|
|
||||||
>
|
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|
||||||
@@ -137,20 +123,14 @@
|
|||||||
page: 1,
|
page: 1,
|
||||||
},
|
},
|
||||||
}"
|
}"
|
||||||
v-slot="{
|
v-slot="{ navigate, href, isActive }"
|
||||||
navigate,
|
custom
|
||||||
href,
|
>
|
||||||
isActive,
|
|
||||||
}"
|
|
||||||
custom>
|
|
||||||
<li
|
<li
|
||||||
@click="navigate"
|
@click="navigate"
|
||||||
:class="
|
:class="isActive ? 'active' : null"
|
||||||
isActive ? 'active' : null
|
>
|
||||||
">
|
<a class="mainLink" :href="href">عکس</a>
|
||||||
<a class="mainLink" :href="href"
|
|
||||||
>عکس</a
|
|
||||||
>
|
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|
||||||
@@ -166,20 +146,14 @@
|
|||||||
page: 1,
|
page: 1,
|
||||||
},
|
},
|
||||||
}"
|
}"
|
||||||
v-slot="{
|
v-slot="{ navigate, href, isActive }"
|
||||||
navigate,
|
custom
|
||||||
href,
|
>
|
||||||
isActive,
|
|
||||||
}"
|
|
||||||
custom>
|
|
||||||
<li
|
<li
|
||||||
@click="navigate"
|
@click="navigate"
|
||||||
:class="
|
:class="isActive ? 'active' : null"
|
||||||
isActive ? 'active' : null
|
>
|
||||||
">
|
<a class="mainLink" :href="href">فیلم</a>
|
||||||
<a class="mainLink" :href="href"
|
|
||||||
>فیلم</a
|
|
||||||
>
|
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|
||||||
@@ -195,42 +169,32 @@
|
|||||||
page: 1,
|
page: 1,
|
||||||
},
|
},
|
||||||
}"
|
}"
|
||||||
v-slot="{
|
v-slot="{ navigate, href, isActive }"
|
||||||
navigate,
|
custom
|
||||||
href,
|
>
|
||||||
isActive,
|
|
||||||
}"
|
|
||||||
custom>
|
|
||||||
<li
|
<li
|
||||||
@click="navigate"
|
@click="navigate"
|
||||||
:class="
|
:class="isActive ? 'active' : null"
|
||||||
isActive ? 'active' : null
|
>
|
||||||
">
|
<a class="mainLink" :href="href">گرافیک</a>
|
||||||
<a class="mainLink" :href="href"
|
|
||||||
>گرافیک</a
|
|
||||||
>
|
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
class="col-12 col-md-4 mb-2"
|
class="col-12 col-md-4 mb-2"
|
||||||
to="/ostandari/digital-books"
|
to="/ostandari/digital-books"
|
||||||
v-slot="{
|
v-slot="{ navigate, href, isActive }"
|
||||||
navigate,
|
custom
|
||||||
href,
|
>
|
||||||
isActive,
|
<li
|
||||||
}"
|
@click="navigate"
|
||||||
custom>
|
:class="isActive ? 'active' : null"
|
||||||
<li
|
|
||||||
@click="navigate"
|
|
||||||
:class="
|
|
||||||
isActive ? 'active' : null
|
|
||||||
">
|
|
||||||
<a class="mainLink" :href="href"
|
|
||||||
>کتابخانه دیجیتال</a
|
|
||||||
>
|
>
|
||||||
</li>
|
<a class="mainLink" :href="href"
|
||||||
</nuxt-link>
|
>کتابخانه دیجیتال</a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</nuxt-link>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -242,13 +206,10 @@
|
|||||||
params: { portal: currentPortal },
|
params: { portal: currentPortal },
|
||||||
}"
|
}"
|
||||||
v-slot="{ navigate, href, isActive }"
|
v-slot="{ navigate, href, isActive }"
|
||||||
custom>
|
custom
|
||||||
<li
|
>
|
||||||
@click="navigate"
|
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||||
:class="isActive ? 'active' : null">
|
<a class="mainLink" :href="href">میز خدمت</a>
|
||||||
<a class="mainLink" :href="href"
|
|
||||||
>میز خدمت</a
|
|
||||||
>
|
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|
||||||
@@ -265,12 +226,11 @@
|
|||||||
query: categoryURLQuery(item),
|
query: categoryURLQuery(item),
|
||||||
}"
|
}"
|
||||||
v-slot="{ href, navigate, isActive }"
|
v-slot="{ href, navigate, isActive }"
|
||||||
custom>
|
custom
|
||||||
|
>
|
||||||
<a class="mainLink">{{ item.title }}</a>
|
<a class="mainLink">{{ item.title }}</a>
|
||||||
|
|
||||||
<li
|
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||||
@click="navigate"
|
|
||||||
:class="isActive ? 'active' : null">
|
|
||||||
<div class="children">
|
<div class="children">
|
||||||
<ul>
|
<ul>
|
||||||
<!-- <nuxt-link-->
|
<!-- <nuxt-link-->
|
||||||
@@ -288,9 +248,9 @@
|
|||||||
:data="item.childs"
|
:data="item.childs"
|
||||||
:props="defaultProps"
|
:props="defaultProps"
|
||||||
accordion
|
accordion
|
||||||
ref="tree">
|
ref="tree"
|
||||||
<div
|
>
|
||||||
slot-scope="{ node, data }">
|
<div slot-scope="{ node, data }">
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
:to="{
|
:to="{
|
||||||
name: 'portal-category-details',
|
name: 'portal-category-details',
|
||||||
@@ -298,31 +258,19 @@
|
|||||||
portal: currentPortal,
|
portal: currentPortal,
|
||||||
details: node.label,
|
details: node.label,
|
||||||
},
|
},
|
||||||
query:
|
query: categoryURLQuery(data),
|
||||||
categoryURLQuery(data),
|
|
||||||
}"
|
|
||||||
v-slot="{
|
|
||||||
href,
|
|
||||||
navigate,
|
|
||||||
isActive,
|
|
||||||
}"
|
}"
|
||||||
|
v-slot="{ href, navigate, isActive }"
|
||||||
custom
|
custom
|
||||||
:class="
|
:class="!data.childs.length && 'test'"
|
||||||
!data.childs.length &&
|
>
|
||||||
'test'
|
|
||||||
">
|
|
||||||
<li
|
<li
|
||||||
@click="navigate"
|
@click="navigate"
|
||||||
:class="
|
:class="isActive ? 'active' : null"
|
||||||
isActive
|
>
|
||||||
? 'active'
|
<a class="subLink" :href="href">{{
|
||||||
: null
|
node.label
|
||||||
">
|
}}</a>
|
||||||
<a
|
|
||||||
class="subLink"
|
|
||||||
:href="href"
|
|
||||||
>{{ node.label }}</a
|
|
||||||
>
|
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</div>
|
</div>
|
||||||
@@ -441,8 +389,7 @@ export default {
|
|||||||
type: item.defaultPageType,
|
type: item.defaultPageType,
|
||||||
id: item._id,
|
id: item._id,
|
||||||
};
|
};
|
||||||
if (item.defaultPageType === "news")
|
if (item.defaultPageType === "news") return { ...query, page: 1 };
|
||||||
return { ...query, page: 1 };
|
|
||||||
if (item.defaultPageType === "gallery")
|
if (item.defaultPageType === "gallery")
|
||||||
return { ...query, galleryType: "image", page: 1 };
|
return { ...query, galleryType: "image", page: 1 };
|
||||||
else return query;
|
else return query;
|
||||||
|
|||||||
+205
-91
@@ -2,12 +2,20 @@
|
|||||||
<div class="site--header">
|
<div class="site--header">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<!------------------------ countDown modal ------------------------>
|
<!------------------------ 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>
|
<div>
|
||||||
<flip-countdown :deadline="counterDown1[0]"></flip-countdown>
|
<flip-countdown :deadline="counterDown1[0]"></flip-countdown>
|
||||||
</div>
|
</div>
|
||||||
<div slot="footer" class="dialog-footer">
|
<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>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!------------------------ countDown modal ------------------------>
|
<!------------------------ countDown modal ------------------------>
|
||||||
@@ -21,15 +29,27 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-md-6 site-top-left">
|
<div class="col-12 col-md-6 site-top-left">
|
||||||
<el-button type="text" @click="showAlert = true" v-if="counterDown">
|
<el-button
|
||||||
<span class="timer">{{ jDate2(counterDown.expireDate) + ' مانده تا ' + counterDown.title }}</span>
|
type="text"
|
||||||
|
@click="showAlert = true"
|
||||||
|
v-if="counterDown"
|
||||||
|
>
|
||||||
|
<span class="timer">{{
|
||||||
|
jDate2(counterDown.expireDate) +
|
||||||
|
" مانده تا " +
|
||||||
|
counterDown.title
|
||||||
|
}}</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<div class="email-top" v-else>
|
<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>
|
<i class="far fa-envelope"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -37,9 +57,14 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="view-banner">
|
<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">
|
<div class="banner">
|
||||||
<img :src="yearBanner.mainCover" alt="">
|
<img :src="yearBanner.mainCover" alt="" />
|
||||||
</div>
|
</div>
|
||||||
<div class="relativePos">
|
<div class="relativePos">
|
||||||
<div class="container navigations">
|
<div class="container navigations">
|
||||||
@@ -47,18 +72,36 @@
|
|||||||
<div class="col-12 col-lg-10 menu-desk">
|
<div class="col-12 col-lg-10 menu-desk">
|
||||||
<nav>
|
<nav>
|
||||||
<ul>
|
<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">
|
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||||
<a :href="href">صفحه اصلی</a>
|
<a :href="href">صفحه اصلی</a>
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</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 ***************** -->
|
<!-- ***************** dynamic routes ***************** -->
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
v-for="item in header.categories"
|
v-for="item in header.categories"
|
||||||
:key="item._id"
|
:key="item._id"
|
||||||
:to="{name: 'portal-category-details',params: {portal: currentPortal,details: item.title},query: categoryURLQuery(item)}"
|
:to="{
|
||||||
v-slot="{navigate,href,isActive}"
|
name: 'portal-category-details',
|
||||||
custom
|
params: { portal: currentPortal, details: item.title },
|
||||||
|
query: categoryURLQuery(item),
|
||||||
|
}"
|
||||||
|
v-slot="{ navigate, href, isActive }"
|
||||||
|
custom
|
||||||
>
|
>
|
||||||
<li :class="isActive ? 'active' : null">
|
<li :class="isActive ? 'active' : null">
|
||||||
<a class="pointer">{{ item.title }}</a>
|
<a class="pointer">{{ item.title }}</a>
|
||||||
@@ -73,12 +116,20 @@
|
|||||||
<!-- </li>-->
|
<!-- </li>-->
|
||||||
<!-- </ul>-->
|
<!-- </ul>-->
|
||||||
<!-- recursive tree -->
|
<!-- recursive tree -->
|
||||||
<TreeItem :array="item.childs"/>
|
<TreeItem :array="item.childs" />
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|
||||||
<!-- ***************** dynamic routes ***************** -->
|
<!-- ***************** 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">
|
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||||
<a :href="href">میز خدمت</a>
|
<a :href="href">میز خدمت</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -89,21 +140,23 @@
|
|||||||
<ul class="tree">
|
<ul class="tree">
|
||||||
<li class="treeItem">
|
<li class="treeItem">
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
:to="{
|
:to="{
|
||||||
name: 'portal-gallery',
|
name: 'portal-gallery',
|
||||||
params: {portal: currentPortal},
|
params: { portal: currentPortal },
|
||||||
query: {type:'image', page: 1}
|
query: { type: 'image', page: 1 },
|
||||||
}">
|
}"
|
||||||
|
>
|
||||||
عکس
|
عکس
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</li>
|
</li>
|
||||||
<li class="treeItem">
|
<li class="treeItem">
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
:to="{
|
:to="{
|
||||||
name: 'portal-videos',
|
name: 'portal-videos',
|
||||||
params: {portal: currentPortal},
|
params: { portal: currentPortal },
|
||||||
query: {type:'video', page: 1}
|
query: { type: 'video', page: 1 },
|
||||||
}">
|
}"
|
||||||
|
>
|
||||||
فیلم
|
فیلم
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
<!-- <nuxt-link-->
|
<!-- <nuxt-link-->
|
||||||
@@ -117,18 +170,17 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="treeItem">
|
<li class="treeItem">
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
:to="{
|
:to="{
|
||||||
name: 'portal-graphics',
|
name: 'portal-graphics',
|
||||||
params: {portal: currentPortal},
|
params: { portal: currentPortal },
|
||||||
query: {type:'graphic', page: 1}
|
query: { type: 'graphic', page: 1 },
|
||||||
}">
|
}"
|
||||||
|
>
|
||||||
گرافیک
|
گرافیک
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</li>
|
</li>
|
||||||
<li class="treeItem">
|
<li class="treeItem">
|
||||||
<nuxt-link
|
<nuxt-link to="/ostandari/digital-books">
|
||||||
to="/ostandari/digital-books"
|
|
||||||
>
|
|
||||||
کتابخانه دیجیتال
|
کتابخانه دیجیتال
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</li>
|
</li>
|
||||||
@@ -136,35 +188,70 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
v-if="yearBanner.electionBtn"
|
v-if="yearBanner.electionBtn"
|
||||||
:to="{name: 'portal',params: {portal: currentPortal === 'ostandari' ? 'election' : 'ostandari'}}"
|
:to="{
|
||||||
v-slot="{navigate,href}"
|
name: 'portal',
|
||||||
custom
|
params: {
|
||||||
|
portal:
|
||||||
|
currentPortal === 'ostandari'
|
||||||
|
? 'election'
|
||||||
|
: 'ostandari',
|
||||||
|
},
|
||||||
|
}"
|
||||||
|
v-slot="{ navigate, href }"
|
||||||
|
custom
|
||||||
>
|
>
|
||||||
<li @click="navigate">
|
<li @click="navigate">
|
||||||
<a :href="href">{{ currentPortal === 'ostandari' ? 'ستاد انتخابات' : 'استانداری' }}</a>
|
<a :href="href">{{
|
||||||
|
currentPortal === "ostandari"
|
||||||
|
? "ستاد انتخابات"
|
||||||
|
: "استانداری"
|
||||||
|
}}</a>
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
<nuxt-link :to="{name: 'portal-info-page', params:{portal: currentPortal,page: 'aboutState'}}" v-slot="{navigate,href,isActive}" custom
|
<nuxt-link
|
||||||
v-if="header.staticContents">
|
: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">
|
<li :class="isActive ? 'active' : null">
|
||||||
<a class="pointer">درباره استان</a>
|
<a class="pointer">درباره استان</a>
|
||||||
|
|
||||||
<div class="mega-menu">
|
<div class="mega-menu">
|
||||||
<!-- item route -->
|
<!-- item route -->
|
||||||
<ul class="tree">
|
<ul class="tree">
|
||||||
<nuxt-link :to="{name: 'portal-info-page', params:{portal: currentPortal,page: 'sima'}}" v-slot="{navigate,href,isActive}" custom>
|
<nuxt-link
|
||||||
<li @click="navigate" :class="isActive ? 'active' : null" class="treeItem">
|
:to="{
|
||||||
<a :href="href">
|
name: 'portal-info-page',
|
||||||
سیمای استان
|
params: { portal: currentPortal, page: 'sima' },
|
||||||
</a>
|
}"
|
||||||
|
v-slot="{ navigate, href, isActive }"
|
||||||
|
custom
|
||||||
|
>
|
||||||
|
<li
|
||||||
|
@click="navigate"
|
||||||
|
:class="isActive ? 'active' : null"
|
||||||
|
class="treeItem"
|
||||||
|
>
|
||||||
|
<a :href="href"> سیمای استان </a>
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</nuxt-link>
|
</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">
|
<li @click="navigate" :class="isActive ? 'active' : null">
|
||||||
<a :href="href">تماس با ما</a>
|
<a :href="href">تماس با ما</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -175,7 +262,11 @@
|
|||||||
<div class="col-12 col-lg-2 left">
|
<div class="col-12 col-lg-2 left">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="searchBtns">
|
<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>
|
<i class="fal fa-times" v-else @click="search(false)"></i>
|
||||||
</li>
|
</li>
|
||||||
<li class="menu" @click="showOffCanvas">
|
<li class="menu" @click="showOffCanvas">
|
||||||
@@ -185,12 +276,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="searchBox" :class="searching? 'active-search' : null">
|
<div class="searchBox" :class="searching ? 'active-search' : null">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<form @submit.prevent="doSearch" class="searchInput">
|
<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">
|
<button type="submit">
|
||||||
<i class="fas fa-arrow-circle-left"></i>
|
<i class="fas fa-arrow-circle-left"></i>
|
||||||
</button>
|
</button>
|
||||||
@@ -205,93 +302,110 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import moment from 'moment-jalaali'
|
import moment from "moment-jalaali";
|
||||||
import FlipCountdown from '~/components/vue2-flip-countdown.js'
|
import FlipCountdown from "~/components/vue2-flip-countdown.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "SiteHeader",
|
name: "SiteHeader",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
searching: false,
|
searching: false,
|
||||||
searchableText: '',
|
searchableText: "",
|
||||||
date: Date.now(),
|
date: Date.now(),
|
||||||
dialogTimeVisible: false,
|
dialogTimeVisible: false,
|
||||||
showAlert: false
|
showAlert: false,
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
setInterval(() => this.date = Date.now(), 1000)
|
setInterval(() => (this.date = Date.now()), 1000);
|
||||||
$(window).scroll(() => {
|
$(window).scroll(() => {
|
||||||
if ($(window).scrollTop() > 300) $('.app-front').addClass('miniHeader')
|
if ($(window).scrollTop() > 300) $(".app-front").addClass("miniHeader");
|
||||||
if ($(window).scrollTop() < 290) $('.app-front').removeClass('miniHeader')
|
if ($(window).scrollTop() < 290)
|
||||||
})
|
$(".app-front").removeClass("miniHeader");
|
||||||
|
});
|
||||||
|
|
||||||
if (this.$route.name !== 'portal') {
|
if (this.$route.name !== "portal") {
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
const homeData = await this.$axios.get(`/api/public/home?portal=${this.$route.params.portal}`, {progress: false})
|
const homeData = await this.$axios.get(
|
||||||
this.$store.commit('front/setHomePageData', homeData.data)
|
`/api/public/home?portal=${this.$route.params.portal}`,
|
||||||
|
{ progress: false }
|
||||||
|
);
|
||||||
|
this.$store.commit("front/setHomePageData", homeData.data);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e);
|
||||||
}
|
}
|
||||||
})()
|
})();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {FlipCountdown},
|
components: { FlipCountdown },
|
||||||
computed: {
|
computed: {
|
||||||
yearBanner() {
|
yearBanner() {
|
||||||
return this.$store.state.front.yearBanner
|
return this.$store.state.front.yearBanner;
|
||||||
},
|
},
|
||||||
currentPortal() {
|
currentPortal() {
|
||||||
return this.$route.params.portal
|
return this.$route.params.portal;
|
||||||
},
|
},
|
||||||
header() {
|
header() {
|
||||||
return this.$store.state.front.headerData
|
return this.$store.state.front.headerData;
|
||||||
},
|
},
|
||||||
jDate() {
|
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() {
|
counterDown() {
|
||||||
return this.$store.state.front.counterDown
|
return this.$store.state.front.counterDown;
|
||||||
},
|
},
|
||||||
counterDown1() {
|
counterDown1() {
|
||||||
return this.$store.state.front.counterDown.expireDate.split('T')
|
return this.$store.state.front.counterDown.expireDate.split("T");
|
||||||
},
|
},
|
||||||
homePageData() {
|
homePageData() {
|
||||||
return this.$store.state.front.homePageData
|
return this.$store.state.front.homePageData;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
categoryURLQuery(item) {
|
categoryURLQuery(item) {
|
||||||
const query = {type: item.defaultPageType, id: item._id}
|
const query = { 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-image') return {...query, page: 1, type: 'gallery', galleryType: 'image'}
|
if (item.defaultPageType === "gallery-image")
|
||||||
if (item.defaultPageType === 'gallery-video') return {...query, page: 1, type: 'gallery', galleryType: 'video'}
|
return { ...query, page: 1, type: "gallery", galleryType: "image" };
|
||||||
if (item.defaultPageType === 'gallery-graphic') return {...query, page: 1, type: 'gallery', galleryType: 'graphic'}
|
if (item.defaultPageType === "gallery-video")
|
||||||
else return query
|
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() {
|
showOffCanvas() {
|
||||||
this.$store.commit('front/setOffCanvas', true)
|
this.$store.commit("front/setOffCanvas", true);
|
||||||
},
|
},
|
||||||
search(status) {
|
search(status) {
|
||||||
this.searching = status
|
this.searching = status;
|
||||||
if (status) setTimeout(() => $('#searchInput').focus(), 100)
|
if (status) setTimeout(() => $("#searchInput").focus(), 100);
|
||||||
else this.searchableText = ''
|
else this.searchableText = "";
|
||||||
},
|
},
|
||||||
doSearch() {
|
doSearch() {
|
||||||
if (this.searchableText.length) {
|
if (this.searchableText.length) {
|
||||||
this.$router.push({name: 'portal-search', params: {portal: this.currentPortal}, query: {sq: this.searchableText}})
|
this.$router.push({
|
||||||
setTimeout(() => this.search(false), 100)
|
name: "portal-search",
|
||||||
|
params: { portal: this.currentPortal },
|
||||||
|
query: { sq: this.searchableText },
|
||||||
|
});
|
||||||
|
setTimeout(() => this.search(false), 100);
|
||||||
} else {
|
} else {
|
||||||
this.$message({
|
this.$message({
|
||||||
type: 'warning',
|
type: "warning",
|
||||||
message: 'ابتدا عبارت مورد نظر را بنویسید'
|
message: "ابتدا عبارت مورد نظر را بنویسید",
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
jDate2(e) {
|
jDate2(e) {
|
||||||
return moment(e).locale('fa').fromNow(true)
|
return moment(e).locale("fa").fromNow(true);
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</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: "",
|
SendDateTime: "",
|
||||||
CanContinueInCaseOfError: "false",
|
CanContinueInCaseOfError: "false",
|
||||||
};
|
};
|
||||||
|
|
||||||
const response = await axios.post(
|
const response = await axios.post(
|
||||||
`http://RestfulSms.com/api/MessageSend`,
|
`http://RestfulSms.com/api/MessageSend`,
|
||||||
data,
|
data,
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Reference in New Issue
Block a user