locale ru
This commit is contained in:
@ -2,9 +2,9 @@
|
||||
<div class="more conter1400">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<span class="_one" @click="handleShow()" style="cursor: pointer"
|
||||
>解决方案</span
|
||||
>
|
||||
<span class="_one" @click="handleShow()" style="cursor: pointer">{{
|
||||
t("solution.solution")
|
||||
}}</span>
|
||||
</el-breadcrumb-item>
|
||||
<el-breadcrumb-item>
|
||||
<span class="_one">{{ oneLevelTitle.title }}</span>
|
||||
@ -41,12 +41,16 @@
|
||||
<script setup>
|
||||
// import request from "@/utils/request";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useI18n } from "vue-i18n";
|
||||
|
||||
const router = useRouter();
|
||||
const { t } = useI18n();
|
||||
|
||||
function handlePath(id) {
|
||||
let routeData = router.resolve({ path: `/solution/detail/${id}/` });
|
||||
window.open(routeData.href, "_blank");
|
||||
}
|
||||
|
||||
// async function solution_case_list() {
|
||||
// return {
|
||||
// code: 200,
|
||||
@ -95,6 +99,7 @@ const props = defineProps({
|
||||
});
|
||||
console.log(props.data);
|
||||
const emit = defineEmits();
|
||||
|
||||
function handleShow() {
|
||||
emit("update:isShowMore", false);
|
||||
}
|
||||
@ -113,6 +118,7 @@ function getDataList() {
|
||||
// loading.value = false;
|
||||
// });
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
// getDataList();
|
||||
});
|
||||
@ -120,31 +126,38 @@ onMounted(() => {
|
||||
<style lang="scss" scoped>
|
||||
.more {
|
||||
padding-top: 30px;
|
||||
|
||||
.el-breadcrumb {
|
||||
padding-bottom: 22px;
|
||||
|
||||
._one {
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
._two {
|
||||
font-size: 16px;
|
||||
font-weight: 600 !important;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
._list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
li {
|
||||
cursor: pointer;
|
||||
width: calc(100% / 6);
|
||||
padding: 0 11px 44px;
|
||||
box-sizing: border-box;
|
||||
|
||||
&:hover ._head,
|
||||
&:hover ._detail {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
._head {
|
||||
margin: 5px 0;
|
||||
font-size: 17px;
|
||||
@ -153,6 +166,7 @@ onMounted(() => {
|
||||
color: #333333;
|
||||
line-height: 19px;
|
||||
}
|
||||
|
||||
._detail {
|
||||
font-size: 15px;
|
||||
font-family: Source Han Sans CN;
|
||||
|
@ -4,10 +4,12 @@
|
||||
<div class="head">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<span class="one">服务案例</span>
|
||||
<span class="one">{{ t("solution.serviceCase") }}</span>
|
||||
</el-breadcrumb-item>
|
||||
<el-breadcrumb-item>
|
||||
<span>服务案例详情</span>
|
||||
<span>
|
||||
{{ t("solution.serviceCaseDetails") }}
|
||||
</span>
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
@ -16,7 +18,9 @@
|
||||
<div>{{ state.data.title }}</div>
|
||||
|
||||
<div class="description">
|
||||
<span class="visits">浏览量:{{ state.data.visits }}</span>
|
||||
<span class="visits"
|
||||
>{{ t("solution.pageviews") }}:{{ state.data.visits }}</span
|
||||
>
|
||||
<span>{{ parseTime(state.data.created_at) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -34,7 +38,8 @@ import seeMore from "./components/seeMore.vue";
|
||||
import { getInfo } from "@/api/website/solution/index";
|
||||
import webFooter from "@/components/webFooter/index.vue";
|
||||
import request from "@/utils/request";
|
||||
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t } = useI18n();
|
||||
function detail(id) {
|
||||
return request({
|
||||
url: "/v1/service/solution_case/detail",
|
||||
|
@ -2,52 +2,54 @@
|
||||
<div v-loading="loading" class="small">
|
||||
<div class="_title">
|
||||
<div
|
||||
v-if="!state.banner"
|
||||
style="height: 394px; background-color: #108de9"
|
||||
v-if="!state.banner"
|
||||
style="height: 394px; background-color: #108de9"
|
||||
></div>
|
||||
<div v-else style="height: 394px">
|
||||
<img
|
||||
:src="state.banner"
|
||||
alt="banner"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="state.banner"
|
||||
alt="banner"
|
||||
style="width: 100%; height: 100%"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="state.caseList.length"
|
||||
:class="isFixed ? '_fixed' : ''"
|
||||
class="_li"
|
||||
v-if="state.caseList.length"
|
||||
:class="isFixed ? '_fixed' : ''"
|
||||
class="_li"
|
||||
>
|
||||
<ul class="conter1000">
|
||||
<li
|
||||
v-for="(item, index) in state.caseList"
|
||||
:key="item.id"
|
||||
:class="activeId == item.id ? '_active' : ''"
|
||||
@click="setScrollTop(item.id, index)"
|
||||
v-for="(item, index) in state.caseList"
|
||||
:key="item.id"
|
||||
:class="activeId == item.id ? '_active' : ''"
|
||||
@click="setScrollTop(item.id, index)"
|
||||
>
|
||||
{{ item.title }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2 v-else style="text-align: center; line-height: 100px">暂无数据</h2>
|
||||
<h2 v-else style="text-align: center; line-height: 100px">
|
||||
{{ t("common.noData") }}
|
||||
</h2>
|
||||
</div>
|
||||
<div v-show="!isShowMore" class="box">
|
||||
<div
|
||||
v-for="(item, index) in state.caseList"
|
||||
:key="index"
|
||||
:ref="setItemRef"
|
||||
:data-id="item.id"
|
||||
class="_item"
|
||||
v-for="(item, index) in state.caseList"
|
||||
:key="index"
|
||||
:ref="setItemRef"
|
||||
:data-id="item.id"
|
||||
class="_item"
|
||||
>
|
||||
<h3 class="_tit text-center" style="font-size: 24px; color: #333333">
|
||||
{{ item.title }}
|
||||
</h3>
|
||||
<div class="_info conter1000">
|
||||
<div v-if="isOddEvenNumber(index)" class="_r">
|
||||
<img :src="item.image" alt srcset/>
|
||||
<img :src="item.image" alt srcset />
|
||||
</div>
|
||||
<div
|
||||
:class="isOddEvenNumber(index) ? '_paddingl' : '_paddingr'"
|
||||
class="_l"
|
||||
:class="isOddEvenNumber(index) ? '_paddingl' : '_paddingr'"
|
||||
class="_l"
|
||||
>
|
||||
<h3 :class="isOddEvenNumber(index) ? 'text-right' : ''">
|
||||
{{ item.title }}
|
||||
@ -56,59 +58,60 @@
|
||||
<p>{{ item.description }}</p>
|
||||
</div>
|
||||
<div v-if="!isOddEvenNumber(index)" class="_r">
|
||||
<img :src="item.image" alt srcset/>
|
||||
<img :src="item.image" alt srcset />
|
||||
</div>
|
||||
</div>
|
||||
<div class="_list conter1400">
|
||||
<ul>
|
||||
<li
|
||||
v-for="child in item.children.slice(0, 2)"
|
||||
:key="child.id"
|
||||
@click="handlePath(child.id)"
|
||||
v-for="child in item.children.slice(0, 2)"
|
||||
:key="child.id"
|
||||
@click="handlePath(child.id)"
|
||||
>
|
||||
<el-image
|
||||
:src="child.image"
|
||||
fit="cover"
|
||||
style="width: 100%; height: 135px"
|
||||
:src="child.image"
|
||||
fit="cover"
|
||||
style="width: 100%; height: 135px"
|
||||
></el-image>
|
||||
<div class="_head text_hidden">{{ child.title }}</div>
|
||||
<div class="_detail text_hidden">{{ child.description }}</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="_liBtn text-right">
|
||||
<el-button class="x_btns" @click="handleShowMore(item)"
|
||||
>查看更多
|
||||
</el-button
|
||||
>
|
||||
<el-button class="x_btns" @click="handleShowMore(item)">
|
||||
{{ t("common.viewMore") }}
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<seeMore
|
||||
v-if="isShowMore"
|
||||
v-model:isShowMore="isShowMore"
|
||||
v-model:oneLevelTitle="oneLevelTitle"
|
||||
:data="moreData"
|
||||
v-if="isShowMore"
|
||||
v-model:isShowMore="isShowMore"
|
||||
v-model:oneLevelTitle="oneLevelTitle"
|
||||
:data="moreData"
|
||||
></seeMore>
|
||||
<webFooter></webFooter>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import {nextTick, onMounted, reactive} from "vue";
|
||||
import { nextTick, onMounted, reactive } from "vue";
|
||||
import seeMore from "./components/seeMore.vue";
|
||||
import webFooter from "@/components/webFooter/index.vue";
|
||||
import {banner} from "@/api/website/home/index";
|
||||
import {useRoute, useRouter} from "vue-router";
|
||||
import {getCase} from "@/api/website/solution";
|
||||
import { banner } from "@/api/website/home/index";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { getCase } from "@/api/website/solution";
|
||||
import { useI18n } from "vue-i18n";
|
||||
// import { getCategory } from "../../../api/website/solution";
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
function handlePath(id) {
|
||||
let routeData = router.resolve({path: `/solution/detail/${id}/`});
|
||||
let routeData = router.resolve({ path: `/solution/detail/${id}/` });
|
||||
window.open(routeData.href, "_blank");
|
||||
}
|
||||
|
||||
const { t } = useI18n();
|
||||
let moreData = ref([]);
|
||||
const loading = ref(true);
|
||||
const oneLevelTitle = ref({});
|
||||
@ -139,7 +142,6 @@ watch(route, () => {
|
||||
initData();
|
||||
});
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
initData();
|
||||
});
|
||||
@ -151,20 +153,21 @@ async function initData() {
|
||||
let mode = route.params.mode;
|
||||
// let key = keyDict[name];
|
||||
|
||||
mode && getCase({mode}).then((res) => {
|
||||
state.caseList = res.data;
|
||||
initScroll();
|
||||
// loading.value = false;
|
||||
});
|
||||
mode &&
|
||||
getCase({ mode }).then((res) => {
|
||||
state.caseList = res.data;
|
||||
initScroll();
|
||||
// loading.value = false;
|
||||
});
|
||||
loading.value = true;
|
||||
banner({locals: `解决方案>${name}`})
|
||||
.then((resp) => {
|
||||
state.banner = resp.data[0].images;
|
||||
loading.value = false;
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
banner({ locals: `解决方案>${name}` })
|
||||
.then((resp) => {
|
||||
state.banner = resp.data[0].images;
|
||||
loading.value = false;
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
function initScroll() {
|
||||
@ -190,15 +193,15 @@ function initScroll() {
|
||||
function getScroll() {
|
||||
return {
|
||||
left:
|
||||
window.pageXOffset ||
|
||||
document.documentElement.scrollLeft ||
|
||||
document.body.scrollLeft ||
|
||||
0,
|
||||
window.pageXOffset ||
|
||||
document.documentElement.scrollLeft ||
|
||||
document.body.scrollLeft ||
|
||||
0,
|
||||
top:
|
||||
window.pageYOffset ||
|
||||
document.documentElement.scrollTop ||
|
||||
document.body.scrollTop ||
|
||||
0,
|
||||
window.pageYOffset ||
|
||||
document.documentElement.scrollTop ||
|
||||
document.body.scrollTop ||
|
||||
0,
|
||||
};
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user